> For the complete documentation index, see [llms.txt](https://docs.flydean.com/spring-framework-documentation5/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flydean.com/spring-framework-documentation5/spring-framework-overview/2.history-of-spring-and-the-spring-framework.md).

# 2. Spring和Spring框架的历史

Spring是在2003年，作为对之前的复杂的J2EE规范而产生的。有些人认为Spring和J2EE是竞争关系，实际上他们是互补的。Spring的编程模块虽然并没有遵照J2EE的平台规范，但是它和如下的J2EE规范紧密的结合： Servlet API (JSR 340)

WebSocket API (JSR 356)

Concurrency Utilities (JSR 236)

JSON Binding API (JSR 367)

Bean Validation (JSR 303)

JPA (JSR 338)

JMS (JSR 914)

JTA/JCA

同时，Spring框架也支持依赖注入(JSR 330)和通用注解(JSR 250)规范，开发人员可以自由选择使用。

在Spring框架5.0中，Spring至少要求Java EE 7以上（比如：Servlet 3.1+, JPA 2.1+），同时提供了对于Java EE 8中新API在运行时的支持（Servlet 4.0, JSON Binding API），这使得Spring可以全面支持多种服务器：Tomcat 8， 9, WebSphere 9,JBoss EAP 7。

Java EE在应用程序开发中的角色在随时间变化，最开始，应用程序必须被部署成为一个服务。随着SPring boot的出现，现在的应用程序可以在devops或者云环境中随意创建。在Spring 框架5中，WebFlux应用程序甚至都不需要使用Servlet API，并且可以运行在类似于Netty这种非Servlet容器中。

Spring还将继续发展下去，除了Spring框架，Spring家族还有其他的一些非常棒的项目：Spring Boot, Spring Security, Spring Data, Spring Cloud, Spring Batch等。每个项目都有自己的代码库，问题跟踪机制和发版计划。如果想知道其他项目的具体情况可以参照：spring.io/projects。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flydean.com/spring-framework-documentation5/spring-framework-overview/2.history-of-spring-and-the-spring-framework.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
