Spring 3.0 M3發布 強化對標注的支持
原創【51CTO快譯】Spring 3.0 M3(第三個里程碑)于09年5月6日發布,以下為SpringSource官方博客發布信息:
Spring 3.0 M3下載地址:http://www.springsource.com/download
本次更新帶來了很多新功能,其中包括
參考文檔:M3是第一個包含了參考文檔的Spring 3.0里程碑,以HTML和PDF格式呈現。
標注factory方法(Annotated factory methods):Spring M3包含了Spring JavaConfig項目的核心功能,即擁有用于定義管理下beans的注解制造方法的配置類。
@Bean @Primary @Lazy |
此類factory方法可被任意注解組件類(如plain @Component classes)支持,依照該組件的狀態而創建并暴露bean對象。它們將被簡單的當做是從那個組件類所推導的bean定義,累加在容器組件的bean定義之上。這樣一個bean定義的默認名是其factory方法的名稱(以上例子中就是“rewardsService”)。這些bean實例可以在容器需要獲取一個新的實例的時候通過factory方法獲取。從語義上這和有factory-bean/factory方法引用的XML bean定義相近。
JavaConfig運作模式:如果factory方法在有@Configuration標注的類上被定義,那么就會形成特別的情況。此類配置組件上的factory方法被允許調用同一組件上的其他factory方法,而內部的factory方法將會在容器內被重新轉向!通過這個可以創建容器管理下bean實例的圖表,而代碼將是簡單的一串Java factory方法調用。與原本的JavaConfig項目相似,我們為了延伸的語義而正在為這種配置類生成CGLIB子類。
需要注意的是標注factory方法可以與XML bean定義完美的混合并搭配使用。該方法也可以與標準的標注組件類混合搭配,再利用@Scope,@Lazy,@Primary以及@Qualifier這些常用標注。包含標注factory方法的組件可以在XML中被定義,也可以通過類路徑中的組件掃描被檢測到。基本上,使用規則和標準Spring bean是一樣的。這是Spring 2.5的標注組件支持的自然延伸。
Meta標注支持的擴展:Spring的@Scope以及@Transactional標注,以及@Service和@Controller等特殊種類,現在都可以做為meta標注被使用在普通的標注上。比如:
@Service |
這是定義具有擴展默認語義的自定義模式(stereotype)標注的強大方法。或者你也可以建造簡單的自定義轄域(scope)標注:比如一個自定義@RequestScoped標注,使用@Scope("request")標記;或者是自定義交易(transaction)標注:比如@MyTX,使用@Transactional(rollbackFor=Exception.class)標記。換句話說,你可以隨心所欲的依據你所需要的配置變量來創建簡便快捷的標注!
TaskScheduler提取:Spring提供了完善的任務計劃外觀API,包括ScheduledExecutorServices適配器以及CommonJ TimerManagers。同時還有一個Trigger提取,以及為執行基于cron表達式的簡單任務計劃所提供的CronTrigger。在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計劃將于六月公布。一個主要的新功能將是對基于標注的驗證的支持,特別是JSR-303 Bean驗證的整合。我們也在嘗試改進ApplicationContexts中開始/結束的生命周期,以及一個Spring管理下轄域代理(scoped proxies)的序列化方案。
消息來源:SpringSource官方博客
【編輯推薦】