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。