Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架【来自百度百科】。
目前Spring已经发展到5.0.4 版本了,今天咱们就来聊一聊spring各个版本都提供了哪些新的特性。
spring 2.x
spring的2.x包括下面两个:
2.5.0-2.5.6 此时的spring还是很年轻的,所包含的模块也不是很多。如下图:
2.0 新特性
以前的Spring版本对IoC容器级支持两个不同的bean作用域(singleton和prototype)。Spring 2.0在这方面进行了改进,不仅根据部署Spring的环境(例如Web环境中的请求和会话作用域Bean)提供了一些额外的作用域,还提供了“挂钩”),使Spring用户可以创建自己的范围。 应该注意的是,虽然singleton和prototype作用域bean的底层(和内部)实现已经改变,但是所述改变对于最终用户是完全透明的…不需要改变现有的配置,并且不存在现有的配置将会中断。
新的Bean的作用域
可扩展的XML
更加简单XML配置(aop&事务)
Spring MVC的表单标签库
Spring 2.0现在支持用Java以外的语言编写的bean,目前支持的动态语言是JRuby,Groovy和BeanShell
引入了对各种注释的支持,用于配置目的,例如@ Transactional, @Required和@PersistenceContext / @PersistenceUnit。
在Spring 2.0在整个框架中对Java 5的深入支持之后,Spring 2.5引入了对Java 6的专门支持。
在类路径中自动检测组件
支持bean名称切入点元素
支持AspectJ加载时织入
基于注释的控制器。
引入了Spring TestContext框架
Spring 3.x
spring 3.x包括以下几个系列:
在2.x的模块上页拓展了新的模块
3.0.x 新特性
3.1.x 新特性
Bean定义配置文件
PropertySource抽象
支持Hibernate 4.x
更简洁的构造函数注入的命名空间
支持Servlet 3基于代码的Servlet Container配置
没有persistence.xml的JPA EntityManagerFactory引导
Flash属性和RedirectAttributes(请求重定向参数的支持)
改进了对通过’Content-Type’标题指定方法消耗的媒体类型以及通过标题指定的可生成类型的支持’Accept’
@Valid on @RequestBody控制器方法参数
UriComponentsBuilder和UriComponents
3.2.x 新特性
Spring 4.x
spring 4包括以下系列版本:
-
Spring现在将泛型类型作为注入Beans时限定符的形式 。例如,如果您正在使用Spring Data Repository,则现在可以轻松注入一个特定的实现: @Autowired Repository
customerRepository。 - 如果您使用Spring的元注释支持,现在可以开发自定义注释来 显示源注释中的特定属性。
- bean现在可以在自动装配到列表和数组中时进行排序。无论是标注和接口的支持。 @OrderOrdered
- 该@Lazy注释现在可以在注入点使用,以及对@Bean 定义。
- 该@Description批注已经推出了使用基于Java的配置开发。
- 已经通过注释添加 了有条件地过滤bean的通用模型@Conditional。这与@Profile支持类似,但允许以编程方式开发用户定义的策略。
- 基于CGLIB的代理类不再需要默认的构造函数。支持通过提供objenesis 其重新打包库在线,并将其作为Spring框架的一部分。有了这个策略,所有的构造函数都不再被调用代理实例。
- 整个框架现在都有管理时区的支持,例如LocaleContext。
- 可以在Spring MVC应用程序中使用新的@RestController注释,不需要添加@ResponseBody到每个 @RequestMapping方法中。
- 该AsyncRestTemplate已添加,允许异步非阻塞支持开发REST客户端时。
- 开发Spring MVC应用程序时提供了全面的时区支持。
- JMS改进
- 缓存改进
- 网络改进
- WebSocket消息传递改进
- 测试改进
- 核心容器改进
- 数据访问改进
- 支持新的包和服务
- 相关改进
可选的第三方依赖已被提升到2010/2011最低(即Spring 4通常只支持2010年末或之后发布的版本):特别是,Hibernate 3.6+,EhCache 2.1+,Quartz 1.8+,Groovy 1.8+和Joda-Time 2.0+。作为规则的一个例外,Spring 4需要最近的Hibernate Validator 4.3+,并且对Jackson的支持已经集中在2.0+以上(当前Spring 3.2已经保留了对Jackson 1.8 / 1.9的支持;现在只是弃用了形成)。
可以使用Spring的回调接口使用 lambda表达式和方法引用
Java EE 6或更高版本现在被认为是Spring Framework 4的基准,JPA 2.0和Servlet 3.0规范特别相关。为了与Google App Engine和较早的应用程序服务器保持兼容,可以将Spring 4应用程序部署到Servlet 2.5环境中。不过,强烈建议使用Servlet 3.0+,这是Spring开发环境中测试设置的测试和模拟包中的先决条件。
核心容器改进
web 模块支持
测试改进
WebSocket,SockJS和STOMP消息传递
spring 4.1.x 新特性
spring 4.2.x 新特性
Spring 4 官方文档
spring 4.3.x 新特性
目前还没有用过spring5,总会有憧憬。当我们使用spring越来越简单时,危机也在一步步逼近;看到表象,进一步,再进一步!
原文始发于微信公众号(glmapper工作室):