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 對帶註解的元件的支援的自然擴充套件。

對元註解的擴充套件支援: 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 現在提供了一個成熟的排程外觀 API,包括標準 ScheduledExecutorServices 和 CommonJ TimerManagers 的介面卡。 它帶有一個 Trigger 抽象和一個 CronTrigger 實現,用於基於 Cron 表示式的簡單排程。 在 3.0 RC1 中,我們將新增一個排程名稱空間,以便在此之上進行方便的基於 XML 的配置。

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

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

附註:我們即將釋出一個經過完全修訂的舊 PetClinic 示例應用程式版本,作為現代 Spring 3.0 Web 應用程式的展示,它將在單獨的發行版中提供。 Keith 將在接下來的幾天內撰寫有關此內容的部落格。

獲取 Spring 新聞通訊

隨時瞭解 Spring 新聞通訊

訂閱

取得領先

VMware 提供培訓和認證來加速您的進步。

瞭解更多

獲取支援

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

瞭解更多

即將到來的活動

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

檢視全部