若是你使用早前版本的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"):
html
<property name="packagesToScan" value="com.**.bo"/>java
你也能夠以清單的方式指定多於1條的匹配字串,如:
spring
<property name="packagesToScan">
<list>
<value>com.abc.core.bo</value>
<value>com.abc.auditing.bo</value>
</list>
</property>api