摘要:新特性重要功能升級為了解決各種環境下如開發測試和生產選擇不同配置的問題,引入了環境功能。這個消息模塊支持的功能,同時提供了基于模板的方式發布消息是第一批支持特性的框架,比如它所支持的表達式。
Spring 3.1新特性
重要功能升級
為了解決各種環境下(如開發、測試和生產)選擇不同配置的問題,Spring 3.1引入了環境profile功能。借助于profile,就能根據應用部署在什么環境之中選擇不同的數據源bean
在Spring 3.0基于Java的配置之上,Spring 3.1添加了多個enable注
解,這樣就能使用這個注解啟用Spring的特定功能
添加了Spring對聲明式緩存的支持,能夠使用簡單的注解聲明緩存邊界和規則,與以前聲明事務邊界很類似
新添加的用于構造器注入的c命名空間,它類似于Spring 2.0所提供的面向屬性的p命名空間,p命名空間用于屬性注入,非常簡潔易用的
Spring開始支持Servlet 3.0,包括在基于Java的配置中聲明Servlet和Filter,而不再借助于web.xml
改善Spring對JPA(Java Persistence API。JPA通過JDK 5.0注解或XML描述對象-關系表的映射關系,并將運行期的實體對象持久化到數據庫中)的支持,使得它能夠在Spring中完整地配置JPA,不必再使用persistence.xml文件
針對Spring MVC的功能增強
自動綁定路徑變量到模型屬性中
提供了@RequestMappingproduces和consumes屬性,用于匹配請求中的Accept和Content-Type頭部信息
提供了@RequestPart注解,用于將multipart請求中的某些部分綁定到處理器的方法參數中
支持Flash屬性(在redirect請求之后依然能夠存活的屬性)以及用于在請求間存放flash屬性的RedirectAttributes類型
Spring 3.2新特性
Spring MVC 3.2的功能提升
控制器(Controller)可以使用Servlet 3.0的異步請求,允許在一個獨立的線程中處理請求,從而將Servlet線程解放出來處理更多的請求
引入了Spring MVC測試框架,用于為控制器編寫更為豐富的測試,斷言它們作為控制器的行為行
為是否正確,而且在使用的過程中并不需要Servlet容器
包含了基于RestTemplate的客戶端的測試支持,在測試的過程中,不需要往真正的REST端點上發送請求
@ControllerAdvice注解能夠將通用的@ExceptionHandler、@ InitBinder和@ModelAttributes方法收集到一個類中,并應用到所有控制器上
完整的內容協商功能可以在整個Spring MVC中使用,即便是依賴于消息轉換器(message converter)使用和產生內容的控制器方法也能使用該功能
包含了一個新的@MatrixVariable注解,能夠將請求中的矩陣變量(matrix variable)綁定到處理器的方法參數中
基礎的抽象類AbstractDispatcherServletInitializer能夠非常便利地配置DispatcherServlet,而不必再使用web.xml。與之類似,當你希望通過基于Java的方式來配置Spring的時候,可以使用Abstract-AnnotationConfigDispatcherServletInitializer的子類
新增了ResponseEntityExceptionHandler,可以用來替代Default-HandlerException Resolver。ResponseEntityExceptionHandler方法會返回ResponseEntity