spring 历史版本迭代
版本 | 版本特性 |
---|---|
Spring Framework 1.0 | 1. 所有代码都在一个项目中 2. 支持核心功能IoC、AOP 3. 内置支持Hibernate、iBatis等第三方框架 4. 对第三方技术简单封装。如:JDBC、Mail、事务等 5. 只支持XML配置方式。 6.主要通过 XML 配置文件来管理对象和依赖关系,配置工作较为繁琐。 |
Spring Framework 2.0 | 1. 最重要的变化:支持注解配置 2. 增加对ehcache支持 3. 对JMS(Java消息服务)、JMX(Java管理扩展)等支持 4.引入了更多的企业级特性,如声明式事务管理。 5.支持与第三方框架(如 Struts、Hibernate)的更好集成。 6.提供了更多的数据访问支持,如 JdbcTemplate 和 HibernateTemplate。 |
Spring Framework 3.0 | 1. 引入了基于 Java 的配置(@Configuration),作为 XML 配置的替代。 2. 由原来的一个项目拆分成多个子模块。 3. 添加单元测试子模块 4. 大量扩展了注解驱动的开发,使得代码更加简洁。 5. 支持JSR-303/JSR-349 Bean Validation 规范,用于验证模型对象。 6. 强化了对 RESTful Web 服务的支持,引入了 @RestController 和 ResponseEntity。 |
Spring Framework 4.0 | 1. 全面支持Java 8,如 Lambda 表达式和日期/时间 API。 2. 添加二级子项目 Spring MVC ,基于Servlet 3.0开发 3. 提供WebSocket支持。 4. 引入@RestController等注解,增强对Restful的支持。 5. 专注于提升性能和减少内存占用。 6. 更好地适应了多核处理器和高并发环境。 |
Spring Framework 5.0 | 1. 最低环境要求Java 8 2. 日志整合。把原来commons-logging 封装后变为spring-jcl模块 3. 跨域更改。把原来的JSONP支持变更为修改响应头的@CrossOrigin注解。 4. 响应式编程。添加二级子项目WebFlux ,支持Reactor和其他反应式流库。 5. 使用Kotlin(科特林)进行函数式编程 6. 对Java 9及更高版本的支持。 7. 强化了对微服务和云原生应用的支持。 8. 提升了对WebSocket和HTTP/2协议的支持。 |
Spring Framework 6.0 | 1. 最低环境要求Java 17 2. 加强对响应式编程支持。添加子模块spring-r2dbc 3. 取消子模块spring-orm-hibernate 4,只保留spring-orm,只支持Hibernate5。 |
spring 生态项目有哪些
Spring从最初的一城一池,发展到如今已经发展为一个生态帝国,旗下拥有诸多的子项目,从最基本的Spring Ioc/AOP使用,到安全管理,再到 大数据,Spring已经逐渐的渗入到各个领域。目前,几乎所有JavaWeb相关的开发都可以在Spring中找到合适的方案,为了在开发的时候,防止重造轮子,下边梳理一下Spring的各个子项目,做到心中有数:
子项目名称 | 子项目介绍 |
---|---|
Spring IO Platform | Spring IO是可集成的、构建现代化应用的版本平台。Spring IO是模块化的、企业级的分布式系统,包括一系列依赖,使得开发者仅能对自己所需的部分进行完全的部署控制 |
Spring Boot | Spring应用快速开发工具,用来简化Spring应用开发过程 |
Spring XD | Spring XD (eXtreme Data,极限数据) 是Pivotal的大数据产品。它结合了Spring Boot和Grails,组成Spring IO平台的执行部分 |
Spring Cloud | 为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性Token、全局锁、决策竞选、分布式会话和集群状态)中操作的开发工具。使用Spring Cloud,开发者可以快速实现上述这些模式 |
Spring Data | 是为了简化构建基于Spring框架应用的数据访问实现,包括非关系数据库、Map - Reduce框架、云数据服务等;也包含,对关系数据库的访问支持 |
Spring Integration | Spring Integration为企业数据集成提供了各种适配器,可以通过这些适配器来转换各种消息格式,并帮助Spring应用完成与企业应用系统的集成 |
Spring Batch | Spring Batch是一个轻量级的完整批处理框架,旨在帮助应用开发者构建一个健壮、高效的企业级批处理应用(这些应用的特点是不需要与用户交互,重复的操作量大,对于大容量的批量数据处理而言,这些操作往往要求较高的可靠性) |
Spring Security | 是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用Spring IoC和AOP功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作 |
Spring HATEOAS | 是一个用于支持超文本驱动的REST Web服务的开发库,是HATEOAS的实现。HATEOAS(Hypermedia as the engine of application state)是REST架构风格中最复杂的约束,也是构建成熟REST服务的核心。它的重要性在于打破了客户端和服务器之间严格的契约,使得客户端可以更加智能和自适应性,而REST服务本身的进化和更新也变得更加容易 |
Spring Social | Spring Social是Spring框架的扩展,用来方便开发Web社交应用程序,可通过该项目来创建与各种社交网站的交互,如Twitter、Facebook、LinkedIn和TripIt等 |
Spring AMQP | 是基于Spring框架的AMQP消息解决方案,提供模板化的发送和接收消息的抽象,提供基于消息驱动的POJO。这个项目支持Java和.NET两个版本。Spring Source旗下的Rabbit MQ(Erlang语言开发)就是一个开源的基于AMQP的消息服务器 |
Spring for Android | Spring for Android为Android终端开发应用提供Spring的支持,它提供了一个在Android应用环境中工作、基于Java的REST客户端 |
Spring Mobile | Spring Mobile是基于Spring MVC构建的,为移动终端的应用开发提供支持。比如,使用Spring Mobile可以在服务器端自动识别连接到服务器的移动终端的相关设备信息,从而为特定的移动终端实现应用定制 |
Spring Web Flow (SWF) | 一个建立在Spring MVC基础上的Web页面流引擎。随着其自身项目的发展,Web Flow比原来更为丰富,SWF定义了一种特定的语言来描述页面流。其目标是成为管理Web应用页面流程的最佳方案。当你的应用需要复杂的导航控制,如向导,在一个比较大的事务过程中指导用户经过一连串的步骤的时候,SWF是一个很好的解决方案框架 |
Spring Web Services | Spring Web Services (Spring WS) 是基于Spring框架的Web服务框架,主要侧重于基于文档驱动的Web服务,提供SOAP服务开发,允许通过多种方式创建Web服务 |
Spring LDAP | LDAP是一个用于操作LDAP的Java框架,类似于Spring JDBC提供了JdbcTemplate方式来操作数据库。这个框架提供了一个LdapTemplate操作模板,可帮助开发人员简化looking up、closing contexts、encoding/decoding values、filters等操作 |
Spring Session | 致力于提供一个公共基础设施会话,支持从任意环境中访问一个会话。在Web环境下支持独立于容器的集群会话,支持可插拔策略来确定Session ID,WebSocket活跃的时候可以简单地保持HttpSession |
Spring Shell | Spring Shell提供交互式的Shell,用户可使用简单的基于Spring的编程模型来开发命令 |
Spring 和 JDK版本对应关系
Spring版本 | JDK版本要求 |
---|---|
6.0.x - 6.1.x | JDK 17 - 21 |
5.3.x | JDK 8 - 19 |
5.2.x | JDK 8 - 15 |
5.1.x | JDK 8 - 12 |
5.0.x | JDK 8 - 10 |
4.3.x | JDK 6 - 8 |
Spring 和Springboot 对应关系
以下是常见的 Spring 和 Spring Boot 部分对应关系(并非涵盖所有版本):
Spring Boot 版本 | Spring 版本 |
---|---|
3.2.x | 6.1.x |
3.1.x | 6.0.x |
3.0.x | 5.3.x |
2.7.x | 5.3.x |
2.6.x | 5.3.x |
2.5.x | 5.3.x |
2.4.x | 5.3.x |
2.3.x | 5.2.x |
2.2.x | 5.2.x |
2.1.x | 5.1.x |
2.0.x | 5.0.x |
1.5.x | 4.3.x |
SpringBoot、SpringCloud、SpringCloudAlibab对应版本选择
SpringBoot、SpringCloud、SpringCloudAlibab对应版本选择