Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架【来自百度百科】。
目前Spring已经发展到5.0.4 版本了,今天咱们就来聊一聊spring各个版本都提供了哪些新的特性。
spring的2.x包括下面两个:
XML Schema的新XML配置语法的出现
新的Bean的作用域
以前的Spring版本对IoC容器级支持两个不同的bean作用域(singleton和prototype)。Spring 2.0在这方面进行了改进,不仅根据部署Spring的环境(例如Web环境中的请求和会话作用域Bean)提供了一些额外的作用域,还提供了“挂钩”),使Spring用户可以创建自己的范围。 应该注意的是,虽然singleton和prototype作用域bean的底层(和内部)实现已经改变,但是所述改变对于最终用户是完全透明的...不需要改变现有的配置,并且不存在现有的配置将会中断。
可扩展的XML
支持@AspectJ方面
更加简单XML配置(aop&事务)
异步JMS
Spring MVC的表单标签库
Java 5(Tiger)支持
Spring 2.0现在支持用Java以外的语言编写的bean,目前支持的动态语言是JRuby,Groovy和BeanShell
提供了一个关于任务调度的抽象概念
引入了对各种注释的支持,用于配置目的,例如@ Transactional, @Required和@PersistenceContext / @PersistenceUnit。
在Spring 2.0在整个框架中对Java 5的深入支持之后,Spring 2.5引入了对Java 6的专门支持。
@Autowired结合对JSR-250注释@Resource,@ PostConstruct和@PreDestroy的支持 。
在类路径中自动检测组件
Spring 2.5引入了支持组件扫描:在类路径中自动检测带注释的组件。典型地,这样的组件类将与定型如进行注释@Component, @Repository,@Service, @Controller。根据应用程序的上下文配置,这些组件类将被自动检测并转换为Spring bean定义,而不需要为每个这样的bean显式配置。
支持bean名称切入点元素
Spring 2.5引入了对bean(...) pointcut元素的支持,根据Spring定义的bean名称匹配特定的命名bean
支持AspectJ加载时织入
Spring 2.5显着扩展了SimpleJdbcTemplate的功能, 并引入了 SimpleJdbcCall和SimpleJdbcInsert 操作对象。
基于注释的控制器。
Spring 2.5为MVC控制器引入了一个基于注释的编程模型,使用@ RequestMapping,@ RequestParam,@ ModelAttribute等注解。这个注解支持可用于Servlet MVC和Portlet MVC。以这种风格实现的控制器不必扩展特定的基类或实现特定的接口。此外,他们通常不直接依赖于Servlet或Portlet API,尽管他们可以很容易地访问Servlet或Portlet设施。
引入了Spring TestContext框架
spring 3.x包括以下几个系列:
在2.x的模块上页拓展了新的模块
缓存抽象
Bean定义配置文件
环境抽象
PropertySource抽象
Spring的XML名称空间的代码等价物
支持Hibernate 4.x
TestContext框架支持@Configuration类和bean定义配置文件
更简洁的构造函数注入的命名空间
支持针对非标准JavaBeans设置器的注入
支持Servlet 3基于代码的Servlet Container配置
支持Servlet 3 MultipartResolver
没有persistence.xml的JPA EntityManagerFactory引导
用于注释的控制器处理的新的基于HandlerMethod的支持类
Flash属性和RedirectAttributes(请求重定向参数的支持)
"consumes" and "produces" conditions in @RequestMapping
改进了对通过'Content-Type'标题指定方法消耗的媒体类型以及通过标题指定的可生成类型的支持'Accept'
URI模板变量增强
@Valid on @RequestBody控制器方法参数
控制器方法参数上的@RequestPart注释
UriComponentsBuilder和UriComponents
spring 4包括以下系列版本:
删除弃用的软件包和方法
可选的第三方依赖已被提升到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的支持;现在只是弃用了形成)。
Java 8(以及6和7)
可以使用Spring的回调接口使用 lambda表达式和方法引用
Java EE 6和7
Java EE 6或更高版本现在被认为是Spring Framework 4的基准,JPA 2.0和Servlet 3.0规范特别相关。为了与Google App Engine和较早的应用程序服务器保持兼容,可以将Spring 4应用程序部署到Servlet 2.5环境中。不过,强烈建议使用Servlet 3.0+,这是Spring开发环境中测试设置的测试和模拟包中的先决条件。
Groovy Bean定义DSL
核心容器改进
web 模块支持
测试改进
WebSocket,SockJS和STOMP消息传递
Spring 4 官方文档
目前还没有用过spring5,总会有憧憬。当我们使用spring越来越简单时,危机也在一步步逼近;看到表象,进一步,再进一步!