【筆記】Spring4 新特性

1.支持將字符串型的日期,直接轉換成爲LocalDate類型

@RestController
public class ExampleController {

  @RequestMapping("/date/{localDate}")
  public String get(@DateTimeFormat(iso = ISO.DATE) LocalDate localDate)
  {
    return localDate.toString();
  }}

2.Spring 4支持對註解@Scheduled和@PropertySource的重複

3.Spring4 支持Java Optional,可以強制要求程序員對可能出現空指針的參數或返回值進行檢查

4.Java 8支持在編譯後的代碼中保留方法的參數名。這意味着Spring 4可以從方法中提取參數名,從而使SpringMVC代碼更爲簡潔

例如:

@RequestMapping("/accounts/{id}")public Account getAccount(@PathVariable("id") String id)

可以改寫爲:

@RequestMapping("/accounts/{id}")public Account getAccount(@PathVariable String id)

但是對於抽象方法,則需要在編譯的時候加入-parameters的選項,JAVA8纔會保留參數名,否則仍然需要在註解中註明參數名

5.通過新的@RestController指定在控制器上,這樣就不需要在每個@RequestMapping方法上加 @ResponseBody了。而且添加了一個AsyncRestTemplate ,支持REST客戶端的異步無阻塞支持。

6.支持泛型依賴注入http://jinnianshilongnian.iteye.com/blog/1989330

7. Map依賴注入:

Java代碼  收藏代碼
  1. @Autowired  
  2. private Map<String, BaseService> map;  

這樣會注入:key是bean名字;value就是所有實現了BaseService的Bean

8.List/數組注入:

Java代碼  收藏代碼
  1. @Autowired  
  2. private List<BaseService> list;  

 這樣會注入所有實現了BaseService的Bean;但是順序是不確定的,如果我們想要按照某個順序獲取;在Spring4中可以使用@Order或實現Ordered接口來實現

9.@Lazy可以延遲依賴注入

10.支持@Conditional註解http://jinnianshilongnian.iteye.com/blog/1989379  用於通過註解來決定Bean的創建方式等

11.基於CGLIB的類代理不再要求類必須有空參構造器了:




參考資料:

http://www.infoq.com/cn/articles/spring-4-java-8


發佈了54 篇原創文章 · 獲贊 61 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章