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可以配置消息監聽模式的恢復選項。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM