Spring Framework 3.0 M3 已釋出

工程 | Juergen Hoeller | 2009 年 5 月 6 日 | ...

我們很高興地宣佈,第三個 Spring 3.0 里程碑版本現已可用(下載頁面)!此版本帶來了許多新功能和改進,包括……

參考文件:M3 是第一個提供 HTML 和 PDF 格式參考文件的 Spring 3.0 里程碑版本。即使文件仍在進行中,它目前也涵蓋了許多 3.0 功能領域。我們希望您會發現這個早期版本的文件對於瞭解更多關於 3.0 里程碑功能的資訊很有用。

帶註解的工廠方法:Spring 3.0 M3 包含了 Spring JavaConfig 專案的核心功能,即帶有註解工廠方法的配置類,用於定義託管 Bean。

@Bean @Primary @Lazy public RewardsService rewardsService() { return new RewardsServiceImpl(...); }

此類工廠方法支援任何帶註解的元件類(例如,普通的 @Component 類),基於元件的狀態構建和公開 Bean 物件。它們將被視為從該元件類派生的其他 Bean 定義,除了包含元件本身的 Bean 定義。此類 Bean 定義的預設名稱是其工廠方法的名稱(在上面的示例中:"rewardsService")。每當容器需要獲取新例項時,這些 Bean 例項都將透過工廠方法呼叫獲得。這在語義上非常接近於具有 factory-bean/factory-method 引用的 XML Bean 定義。

除了簡單的工廠方法,我們還支援JavaConfig 操作模式:如果工廠方法定義在一個用 @Configuration 註解標記的類中,那麼將應用特殊行為……此類顯式配置元件中的工廠方法允許呼叫同一組件上的其他工廠方法,這些內部工廠方法呼叫將透過容器重新路由!這允許構建容器託管 Bean 例項的圖,而構建器程式碼僅僅由鏈式 Java 工廠方法呼叫組成。與原始的 JavaConfig 專案一樣,我們將為這些配置類生成 CGLIB 子類,以提供這些擴充套件語義。

請注意,帶註解的工廠方法可以與 XML Bean 定義無縫地混合搭配。它們還可以與常規的帶註解的元件類混合搭配,重用許多通用註解,如 @Scope、@Lazy、@Primary 和 @Qualifier。包含帶註解的工廠方法的元件可以在 XML 中定義,或透過類路徑中的元件掃描進行檢測。基本上,適用於任何常規 Spring Bean 的規則同樣適用於此;這現在是 Spring 2.5 對帶註解元件支援的自然擴充套件。

對元註解的擴充套件支援:Spring 的 @Scope 和 @Transactional 註解,以及 @Service 和 @Controller 等專用刻板印象註解,現在可以作為元註解應用於自定義註解。例如

@Service @Scope("request") @Transactional(rollbackFor=Exception.class) @Retention(RetentionPolicy.RUNTIME) public @interface MyService { }

@MyService public class RewardsService { … }

這是定義具有擴充套件預設語義(如上所示)的自定義刻板印象註解的強大方法。或者,您可以構建簡單的自定義作用域註解:例如,一個用 @Scope("request") 標記的自定義 @RequestScoped 註解,或者自定義事務註解:例如,一個用 @Transactional(rollbackFor=Exception.class) 標記的 @MyTx。換句話說,這允許建立您首選配置變體的便捷快捷方式註解

TaskScheduler 抽象:Spring 現在提供了一個功能齊全的排程 Facade API,包括標準 ScheduledExecutorServices 和 CommonJ TimerManagers 的介面卡。這附帶了一個 Trigger 抽象和一個 CronTrigger 實現,用於基於 cron 表示式的簡單排程。在 3.0 RC1 中,我們將新增一個排程名稱空間,以便在此之上方便地進行基於 XML 的配置。

新的型別轉換 SPI 和轉換器 API:受到 Spring Web Flow 繫結子系統功能的啟發,Spring 現在支援無狀態的 Java 5 基於型別轉換器。這已經與 Spring 3.0 的表示式解析器整合,並將作為標準 JDK PropertyEditors 的替代方案,在 3.0 RC1 中完全支援所有 Spring 繫結用途。同樣,Spring Web Flow 3.0 也將使用這個新的統一轉換子系統。

我們現在將繼續開發Spring 3.0 RC1,該版本計劃於 6 月釋出。RC1 的一項主要新功能是支援基於註解的驗證:具體來說,是JSR-303 Bean Validation提供程式的整合。我們還在研究 ApplicationContexts 中啟動/停止生命週期的改進,並正在為 Spring 管理的作用域代理開發序列化解決方案。請密切關注!

附言:我們即將釋出一個完全修改過的經典PetClinic 示例應用程式版本,作為現代 Spring 3.0 Web 應用程式的展示,該版本將單獨分發。Keith 將在未來幾天內就此進行部落格更新。

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有