zoukankan      html  css  js  c++  java
  • Spring mvc 4系列教程(三)—— Spring4.X的新特性

    1.Spring4.0的新特性

    2004Spring1.0发布后,后面又发布了很多重要的版本:Spring2.0提供了XML命令空间和AspectJ的支持;Spring2.5提出了注解驱动(annotation-driven)配置;Spring3.0引入了跨框架代码库的java 5+、基于javaConfiguration模型等。

    Spring 4.0是最近发布的主要版本,而且对java8完全支持。当然,你可以继续使用低版本的java,但最低只能是java SE6Spring 4.0里面也删除了很多废弃的类和方法。

    升级Spring4.0的方法请参考:

    https://github.com/spring-projects/spring-framework/wiki

    1.1改进的入门体验

    新版sping.io网站为Spring的初学者提供了一系列的入门指南。这个网站也提供了很多基于Spirng的项目,供开发者学习。

    如果你平时也使用Maven,那你应该对Spring的配套BOM(bill of materials)也感兴趣。

    1.2删除的包和方法

    Spring4.0里面删除了很多包、类和方法,因此,在升级成4.0以前,首先要确保已经将过时的代码修复。

    要查看4.0的全部变化,请查看:

    http://docs.spring.io/spring-framework/docs/3.2.4.RELEASE_to_4.0.0.RELEASE/

    1.3 JAVA8

    Spring4.0能够支持java 8的很多特性。你可以通过Spring的回调接口使用lambda

    expressions and method。提供了java.time的支持,通过@Repeatable对很多注解进行了改造。

    Spring4.0保持了对java低版本的兼容,但最低也只能是20101月发布的JDK 6 update 18。然后,对于新的基于Spring4的项目,建议使用java7java8

    1.4 JAVA6/JAVA7

    JAVA EE 6JPA 2.0Servlet 3.0被认为是Spring 4baseline。为了保持和Google应用、其它较老应用服务的兼容,可能会将Spring 4集成到Servlet 2.5环境中。然而,建议最好使用Servlet 3.0以上。

    Spring4支持JAVA EE7级别的相关规范,尤其是JMS 2.0, JTA 1.2, JPA 2.1, Bean Validation 1.1, and JSR-236并行工具。

    1.5Groovy Bean Definition DSL

    通过Groovy DSL可以在Spring4里面定义外部bean配置文件。这和XML定义bean的方法类似,但语法更简约。使用Groovy也使得在bootstrap代码中轻松的嵌入bean定义。例如:

     

    了解更多请参考:

    http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/groovy/GroovyBeanDefinitionReader.html

    1.6Core Container改进

    Spring4core container有很多改进的地方:

    当注入bean的时候,Spring可以将泛型作为一种修饰符。比如你想用SpringRepository,可以通过注入实现:@Autowired Repository<Customer> customerRepository。

    如果你用过Spring的元注解支持,现在可以从元注解中开发定制化注解,实现定制属性。

    和@Bean定义一样,@Lazy注解也可以在注入点(injection points)使用。

    开发都可以使用基于java的配置来使用@Description注解。

    通过@Conditional注解增加了条件过滤bean的广义模型。

    1.7General Web改进

    Spring4.0框架目前只支持Servlet 3.0以上环境,如果你使用Spring MVC Test Framework,必须要确保在classpath中有Servlet 3.0兼容的JAR包。

    每个@RequestMapping方法后不必再使用@ResponseBody,可以使用新的@RestController来实现。

    提供了全面的时间区支持。 

    1.8Testing改进

    Spring Framework 4.0为单元测试和集成测试增加了很多新的特性:

    几乎所有的spring-test模块里的注解(例如@ContextConfiguration,

    @WebAppConfiguration, @ContextHierarchy, @ActiveProfiles等)都可以被当作元注解,去创建定制组合注解,通过一个测试套件(test suite)减少配置重复;

    通过实现ActiveProfilesResolver,并通过@ActiveProfiles的resolver属性注册,可以实现自动解析动态类(Active bean definition);

    在spring-core模块里引入SocketUtils类,可以扫描本地的TCPUDP端口。虽然这个功能不是为测试专用,但当在集成测试中需要sockets时被证明是非常有用的。

    2.Spring4.1的新特性

    1.JAVA消息服务(JMS)改进

    Spring 4.1引入@JmsListener来注册JMS监听端(JMS listener endpoints),同时引入XML空间jms:annotation-driven来支持此样式。使用JmsListenerConfigurer也可以注册监听端。

    在Spring 4.0中引入的spring-messaging在4.1中也同样受益:受益于标准消息注解@Payload, @Header, @Headers, and @SendTo,可以实现消息监听端的数字签名。

    Spring4.1中有了其它多方面的改进:

    用JmsTemplate支持异步请求-回答操作;

    通过<jms:listener/>属性可以指定监听优先级;

    通过实现BackOff可以配置消息监听模式的恢复选项。

  • 相关阅读:
    TCP和UDP协议?
    了解浏览器缓存机制吗?
    关于预检请求?
    cookie可设置哪些属性?httponly?
    http和https?
    vue自定义组件?
    实现页面回退刷新?
    vue3.0的更新和defineProperty优化?
    vue的seo问题?
    vuex组成和原理?
  • 原文地址:https://www.cnblogs.com/jpcflyer/p/5975078.html
Copyright © 2011-2022 走看看