Spring 2.5.6新特性之packagesToScan

comeontony發表於2011-11-08

如果你使用早前版本的Spring,又恰好採用了Annotation註解方式(而非傳統XML方式)配置Hibernate物件關係對映,那麼在 通過 org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean 配置sessionFactory時,你一定對annotatedClasses、annotatedPackages有一種說不出的胸悶的感覺,如此以 高配置性見長的Spring,怎麼在這一個小小的環節上就不能做得再靈活些呢,一定要一個個手寫Class路徑麼?

    估計有不少人無奈選擇了從AnnotationSessionFactoryBean繼承一個自定義的子類,自己實現掃描邏輯,找出@Entity註解過的類清單配置進去。

    Spring 2.5.6裡有個不怎麼起眼的改進,那就是在AnnotationSessionFactoryBean上增加了一個新的方法:setPackagesToScan(String[] packagesToScan)

    有了這個方法,我們不再需要自己動手去實現實體類的掃描了,直接在Spring配置檔案中AnnotationSessionFactoryBean這個 section上增加類似如下的一個property即可(假定你需要載入的實體類所在的包名match這個字串"com.**.bo"):

 

< property  name ="packagesToScan"  value ="com.**.bo" />

    你也可以以清單的方式指定多於1條的匹配字串,如:

 

< property  name ="packagesToScan" >
    
< list >
        
< value > com.abc.core.bo </ value >
        
< value > com.abc.auditing.bo </ value >
    
</ list >
</ property >

相關文章