Spring2.5.6新特性之packagesToScan

字號(hào):

如果你使用早前版本的Spring,又恰好采用了Annotation注解方式(而非傳統(tǒng)XML方式)配置Hibernate對象關(guān)系映射,那么在通過org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean配置sessionFactory時(shí),你一定對annotatedClasses、annotatedPackages有一種說不出的胸悶的感覺,如此以高配置性見長的Spring,怎么在這一個(gè)小小的環(huán)節(jié)上就不能做得再靈活些呢,一定要一個(gè)個(gè)手寫Class路徑么?
    估計(jì)有不少人無奈選擇了從AnnotationSessionFactoryBean繼承一個(gè)自定義的子類,自己實(shí)現(xiàn)掃描邏輯,找出@Entity注解過的類清單配置進(jìn)去。
    Spring 2.5.6里有個(gè)不怎么起眼的改進(jìn),那就是在AnnotationSessionFactoryBean上增加了一個(gè)新的方法:setPackagesToScan(String[] packagesToScan)
    有了這個(gè)方法,我們不再需要自己動(dòng)手去實(shí)現(xiàn)實(shí)體類的掃描了,直接在Spring配置文件中AnnotationSessionFactoryBean這個(gè)section上增加類似如下的一個(gè)property即可(假定你需要加載的實(shí)體類所在的包名match這個(gè)字符串"com.**.bo"):
    
    你也可以以清單的方式指定多于1條的匹配字串,如:
    
    
    com.abc.core.bo
    com.abc.auditing.bo