領先一步
VMware 提供培訓和認證,助您加速進步。
瞭解更多我很高興地宣佈,我們最近釋出了第一個 Spring 3.0 釋出候選版本(下載頁面)。此版本完成了 Spring 3.0 的主要功能集。您肯定還記得最初的 Spring 3.0 主題 REST 和 EL;在此期間,我們已經顯著擴充套件了列表
完全基於 Java 5:這是需要 Java 5 或更高版本的第一個 Spring 代,整個 Spring API 以及整個實現程式碼庫都使用了 Java 5 語法。例如,BeanFactory API 在可能的情況下返回泛型型別的 bean 例項,並且 ApplicationListeners 現在可以使用泛型宣告特定的事件型別。作為比較:在 Spring 2.5 中,實際的 Spring 核心仍然相容 JDK 1.4,而許多更高階的功能是基於 Java 5 構建的。
Spring 表示式語言 (SpEL):一個核心的表示式解析器,用於 bean 定義中,允許透過屬性值中的通用 #{...} 語法引用巢狀的 bean 結構(例如,其他 bean 的屬性)以及環境變數結構(例如,系統屬性值)。它也為 Spring 專案組合中的各種基於表示式的功能奠定了基礎。
對基於註解的元件的擴充套件支援:現在支援配置類和註解的工廠方法——Spring JavaConfig 專案的關鍵 Java 配置功能終於在 Spring 中可用了!Spring 現在還允許透過 @Value 表示式注入配置值,透過動態的 #{...} 表示式或靜態的 ${...} 佔位符引用配置設定。
強大的原型模型:透過元註解的使用,可以建立“快捷方式”註解,例如為自定義原型提供預設的 scope 和事務特性。想象一下,一個自定義的 @MyService 註解,透過一個註解就表示了 @Service、@Scope("request") 和 @Transactional(readOnly=true)。這就是“不要重複自己”原則在元件註解使用上的體現!
標準化的依賴注入註解:Spring 3.0 開始對 JSR-330 Java 依賴注入規範 提供早期支援——透過 `javax.inject.Inject` 及其相關的限定符和提供者模型進行註解驅動的注入,作為 Spring 自有 @Autowired 等的替代方案。請注意,JSR-330 尚未最終確定;隨著規範本身的成熟,我們將完成 Spring 的 `javax.inject` 支援。
基於約束註解的宣告式模型驗證:Spring 風格的 JSR-303 Bean Validation 提供程式(如 Hibernate Validator 4.0)的設定。在 Spring MVC 中提供了註解驅動的驗證選項,透過 Spring 的 binding result 機制暴露統一的約束違反檢視。請注意,JSR-303 接近最終但尚未完全定稿;我們將跟蹤其持續的演進直至 GA。
增強的繫結和格式化功能:無狀態的 Converter 和 Formatter SPI 作為標準 PropertyEditors 的替代方案,與 Spring 容器和 Spring MVC 完全整合。在轉換(核心型別強制轉換)和格式化(渲染為本地化字串值和從本地化字串值解析)之間進行區分。格式化可以透過註解驅動,風格類似於 JSR-303 約束註解的使用。
全面的 REST 支援:Spring MVC 中內建的 REST 功能,如 REST 風格的請求對映,透過 @PathVariable 引數提取 URI 變數,以及由內容協商驅動的檢視解析。可以將其視為 Spring MVC 2.5 的升級,內建了一流的 REST 功能——同時仍然關注 MVC 方法。客戶端 REST 支援以 RestTemplate 類的形式提供。
物件/XML 對映 (OXM):如同 Spring Web Services 中已知的那樣,現在已包含在 Spring Framework 核心中。提供 Marshalling 和 Unmarshaller 抽象,並提供對 JAXB 2、Castor 等的開箱即用支援。提供了與 Spring MVC 和 Spring JMS 中的 XML 載荷支援的整合選項。
Portlet 2.0 支援:Spring MVC 完全支援 Portlet 2.0 環境以及 Portlet 2.0 的新事件和資源請求模型。包含針對典型 portlet 請求特性的專用對映功能:@ActionMapping、@RenderMapping、@ResourceMapping、@EventMapping。
下一代排程功能:新的 TaskScheduler 和 Trigger 機制,支援一流的 cron,與 Spring 的 TaskExecutor 機制保持一致。Spring 3.0 提供了一個方便的任務名稱空間,現在還支援 @Async 和 @Scheduled 註解。這可以在原生執行緒池或伺服器管理的執行緒池之上執行,並支援所有主要的 Java EE 應用伺服器。
最後但同樣重要的是,對 Java EE 6 的早期支援:除了 JSR-303 和 JSR-330 支援外,Spring 3.0 已經支援在 Spring 環境中使用 JSF 2.0 和 JPA 2.0。其他與 Java EE 6 相關的規範,如 Servlet 3.0,將在其在具體產品中可用時得到完全支援;這計劃在 Spring 3.1/3.2 版本中實現。
在 RC1 版本中尤其值得注意的是上述提到的“3-0”規範 **JSR-330** 和 **JSR-303**;我們將在後續的博文中詳細介紹 Spring 對這些規範的支援。目前,請檢視關於 基於註解的配置 的修訂部分以及關於 宣告式驗證 的新章節。您可能還對 Spring 的新格式化功能感興趣:註解驅動的欄位格式化。
附言:除了 RC1 中的關鍵功能集之外,我們還在考慮為即將釋出的 3.0 RC2 包含幾項小改進:例如,一個用於 Spring MVC 中格式化和驗證設定的 Web 名稱空間。3.0 RC2 定於十月中旬釋出;其主要重點是相容性改進以及執行時最佳化。敬請關注!