Spring Framework 3.0 M3 版本發布

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

我們很高興宣布 Spring 3.0 第三個里程碑版本現已推出 (請至下載頁面下載)!此版本包含許多新功能和改進,包括...

參考文件:M3 是第一個包含參考文件的 Spring 3.0 里程碑版本,提供 HTML 和 PDF 格式。 即使文件仍在開發中,但目前已涵蓋許多 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 對已註解組件的支援的自然擴展。

擴展的 Meta-Annotation 支援: Spring 的 @Scope 和 @Transactional 註解,以及 @Service 和 @Controller 等特殊刻板印象現在可以用作自訂註解上的 Meta-Annotation。 例如

@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 現在提供了一個完善的排程外觀 API,包括標準 ScheduledExecutorServices 和 CommonJ TimerManagers 的轉接器。 這帶有一個觸發器抽象和一個 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 也將使用這個新的統一轉換子系統。

我們現在正在轉向計劃於 6 月發布的 Spring 3.0 RC1。 RC1 的一個主要新功能是支援基於註解的驗證:特別是 JSR-303 Bean 驗證提供者的整合。 我們還在研究 ApplicationContexts 中啟動/停止生命週期的改進,並且正在研究 Spring 管理的範圍代理的可序列化解決方案。 請關注此處!

附註:我們即將發布一個經過徹底修改的舊版 PetClinic 範例應用程式,作為現代 Spring 3.0 Web 應用程式的展示,它將在單獨的發行版中提供。 Keith 將在接下來的幾天內撰寫關於此的部落格。

取得 Spring 電子報

隨時掌握 Spring 電子報的最新消息

訂閱

領先一步

VMware 提供培訓和認證,以加速您的進度。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

了解更多

即將舉辦的活動

查看 Spring 社群中所有即將舉辦的活動。

檢視全部