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