既存のhiernateを利用する.properties構成spring+hibernate


多くの資料にはcofigLocationプロパティを使用してhibernateを使用することができると記載されています.cfg.xmlの構成はspringのsessionFactoryに構成されていますが、hibernateのpropertiesファイルを利用して同じ機能を実現する方法については言及されていません.
 
以下は私が実現した方法です.
 
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		<property name="url" value="URL"/>
		<property name="username" value="xxxxx"/>
		<property name="password" value="xxxxx"/>
	</bean>

	<bean id="hibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
	    <property name="properties">
	      <props> 
	          <!-- normal properties -->
	      </props>
	    </property>
	    <!-- hibernate.config should be defined somewhere in the spring.properties layers -->
	    <property name="locations">
	      <list>
                <!-- 
hibernate_properties_file_path  hiernate        -->
                <value>hibernate_properties_file_path</value>
	      </list>
	    </property>
	</bean>






	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
	    <!-- normal stuff -->
	    <property name="mappingDirectoryLocations">
			<list>
				<value>classpath:/org/layer1/layer2.../layerN</value>
			</list>
		</property>
		<property name="dataSource" ref="dataSource"/>
	    <property name="hibernateProperties">
	      <ref local="hibernateProperties" />
	    </property>





	</bean>

</beans>