1. 程式人生 > >【spring框架28】spring之packagesToScan

【spring框架28】spring之packagesToScan

spring的spring.jar的jar包內,在org.springframework.orm.hibernate3.annotation下,有一個AnnotationSessionFactoryBean類,其中有一個屬性叫做"packagesToScan",有個方法叫setpackagesToScan(),也就是說我可以再spring裡面將這個屬性給設定上。

packagesToScan是"包掃描"的意思,哪些包spring可以給我們掃描一下,看看有哪些實體類,這一項在我們在配置檔案中配置hibernate的實體類的時候可以這麼配,只要給出具體的掃描範圍就可以了,不需要將實體類一個一個的寫出來

不用packagesToScan在beans.xml中:  

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    	<property name="annotatedClasses">
      		<list>
        	<value>cn.edu.hpu.model.User</value>
        	<value>cn.edu.hpu.model.Log</value>
     		</list>
    	</property>
    	<property name="hibernateProperties">
			<props>
		   		<prop key="hibernate.dialect">
                    org.hibernate.dialect.MySQLDialect
                </prop>
		   		<prop key="hibernate.show_sql">true</prop>
			</props>
    	</property>
  </bean>

用packagesToScan的時候:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    	<property name="packagesToScan">
      		<list>
        	<value>cn.edu.hpu.model</value>
     		</list>
    	</property>
    	<property name="hibernateProperties">
			<props>
		   		<prop key="hibernate.dialect">
                    org.hibernate.dialect.MySQLDialect
                </prop>
		   		<prop key="hibernate.show_sql">true</prop>
			</props>
    	</property>
  </bean>

這樣cn.edu.hpu.model的實體類全部會掃描出來,就不用一個一個寫了。