转载自:http://blog.csdn.net/javaalpha/article/details/9150869
spring 使用classpath方式加载hibernate映射文件
对应的Spring的版本:spring3.0
- <!-- 批量指定到classpath下面 -->
- <property name="mappingLocations">
- <list>
- <value>classpath:com/alpha/bean/*.hbm.xml</value>
- </list>
- </property>
下面是搜集的其他的方法加载映射文件,仅供参考,如有错误欢迎指正:
- 在Spring的applicationContext.xml中配置映射文件,通常是在<sessionFactory>这个Bean实例中进行的,若配置的映射文件较少时,可以用sessionFactory的所属类LocalSessionFactoryBean的“mappingResources”属性,方式包括(mappingResources,mappingLocations、mappingDirectoryLocations与mappingJarLocations )定义方法如下:
- 第一种:
- <property name="mappingResources">
- <list>
- <value>com/w3cs/vlar/hibernate/Person.hbm.xml</value>
- <value>com/w3cs/vlar/hibernate/Car.hbm.xml</value>
- <value>com/w3cs/vlar/hibernate/Engine.hbm.xml</value>
- <value>com/w3cs/vlar/hibernate/Toy.hbm.xml</value>
- </list>
- </property>
- 当配置文件变得越来越多,阅读和修改起来也越来越麻烦,而且基于XML的配置也可能带来输入的错误,导致你可能因为一个字符的错误而浪费半天时间去寻找错误。
- 第二种:
- 在这种情况下,可以使用LocalSessionFactoryBean的“mappingDirectoryLocations”属性来定义映射文件,只要指出映射文件所在文件夹就可以了,Spring会替你找出该文件夹内所有的映射文件,定义方法如下:
- <property name="mappingDirectoryLocations">
- <list>
- <value>WEB-INF/mappings</value>
- </list>
- </property>
- 第三种:
- 当然,它的属性值也可以通过classpath来指出,这时所指定的是工程的类路径
- <property name="<span style="font-family: Arial, Helvetica, sans-serif;">mappingLocations</span>">
- <list>
- <value>classpath:/my/package/*.hbm.xml</value>
- </list>
- </property>
- 第四种:
- <!-- 增加了对大对象字段处理配置Begin -->
- <bean id ="oracleLobHandler"
- class ="org.springframework.jdbc.support.lob.OracleLobHandler"
- lazy-init ="true" >
- <property name ="nativeJdbcExtractor" ref ="nativeJdbcExtractor" />
- </bean>
- <bean id ="nativeJdbcExtractor" class ="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
- lazy-init ="true"/>
- <!-- 增加了对大对象字段处理配置End -->
- <!-- 定义Hibernatte框架中需要的SesscionFactory对象//-->
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <!--增加了对大对象字段处理配置Begin -->
- <property name ="lobHandler" ref ="oracleLobHandler"/>
- <!--增加了对大对象字段处理配置End -->
- <property name="mappingDirectoryLocations">
- <list>
- <value>classpath:/my/package/login/dao/pojo/</value>
- <value>classpath:/my/package/jpf/dao/pojo/</value>
- ......
- </list>
- </property>