領先一步
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 表示式注入配置值,透過動態的 #{...} 表示式或靜態的 ${...} 佔位符引用配置設定。
強大的原型模型: 允許透過使用元註解建立“快捷方式”註解,例如為自定義原型提供預設作用域和預設事務特性。想象一個自定義的 @MyService 註解,透過一個註解即可表示 @Service、@Scope("request") 和 @Transactional(readOnly=true)。這是將 Don’t Repeat Yourself 原則應用於元件註解的使用!
標準化的依賴注入註解: Spring 3.0 提供了對 JSR-330 Java 依賴注入規範 的早期支援——透過 javax.inject.Inject 及其相關的 qualifier 和 provider 模型進行註解驅動的注入,作為 Spring 自有的 @Autowired 等註解的替代方案。請注意,JSR-330 尚未最終確定;我們將隨著規範本身的成熟來完善 Spring 的 javax.inject 支援。
基於約束註解的宣告式模型驗證: Spring 風格地設定 JSR-303 Bean Validation 提供程式(例如 Hibernate Validator 4.0)。在 Spring MVC 中提供註解驅動的驗證選項,透過 Spring 的繫結結果工具暴露約束違規的統一檢視。請注意,JSR-303 接近最終版本但尚未完全最終確定;我們將一直跟蹤其持續演變直至 GA 版本。
增強的繫結和格式化工具: 無狀態的 Converter 和 Formatter SPIs 作為標準 PropertyEditors 的替代方案,並與 Spring 容器和 Spring MVC 完全整合。區分轉換(核心型別強制轉換)和格式化(渲染為本地化字串值並從本地化字串值解析)。格式化可以像使用 JSR-303 約束註解一樣由註解驅動。
全面的 REST 支援: Spring MVC 中的原生 REST 功能,例如 REST 風格的請求對映、透過 @PathVariable 引數提取 URI 變數,以及由內容協商驅動的檢視解析。可以將其視為現在內建了一流 REST 功能的 Spring MVC 2.5——同時仍然專注於 MVC 方法。客戶端 REST 支援以 RestTemplate 類的形式提供。
物件/XML 對映 (OXM): 如 Spring Web Services 中所知,現已加入 Spring Framework 核心。Marshalling 和 Unmarshaller 抽象,開箱即用地支援 JAXB 2、Castor 等。附帶在 Spring MVC 和 Spring JMS 中支援 XML payload 的整合選項。
Portlet 2.0 支援: Spring MVC 完全支援 Portlet 2.0 環境和 Portlet 2.0 的新事件和資源請求模型。包括針對典型 portlet 請求特性的專用對映工具:@ActionMapping, @RenderMapping, @ResourceMapping, @EventMapping。
下一代排程功能: 全新 TaskScheduler 和 Trigger 機制,具有一流的 cron 支援,與 Spring 的 TaskExecutor 機制對齊。Spring 3.0 附帶了方便的 task 名稱空間,現在還支援 @Async 和 @Scheduled 註解。這可以在原生執行緒池或伺服器管理的執行緒池之上執行,支援所有主要的 Java EE 應用伺服器。
最後但同樣重要的是,對 Java EE 6 的早期支援: 除了 JSR-303 和 JSR-330 支援外,Spring 3.0 已支援在 Spring 環境中使用 JSF 2.0 和 JPA 2.0。隨著 Servlet 3.0 等其他 Java EE 6 相關規範在具體產品中可用,Spring 將完全支援它們;這計劃在 Spring 3.1/3.2 時間範圍內實現。
在 RC1 版本中尤其重要的是上述提及的“3-0”規範 JSR-330 和 JSR-303;我們將在後續文章中詳細闡述 Spring 對這些規範的支援。目前,請查閱關於 基於註解的配置 的修訂部分以及關於 宣告式驗證 的新章節。您可能還會對 Spring 的新格式化功能感興趣:註解驅動的欄位格式化。
附註:除了 RC1 中的關鍵功能集之外,我們正在考慮在即將釋出的 3.0 RC2 中包含一些小的增強功能:例如,用於在 Spring MVC 中設定格式化和驗證的 web 名稱空間。3.0 RC2 計劃於 10 月中旬釋出;其主要重點是相容性改進和執行時最佳化。敬請關注!