SPRING-SOURCE.RU

Конфигурация с помощью Spring

                        
db.properties
	database.driver=com.mysql.jdbc.Driver
	database.url=jdbc:mysql://localhost:3306/tpps
	database.user=root
	database.password=root
	database.dialect=org.hibernate.dialect.MySQLDialect
	database.createSchema=update
	database.showSql=true


<bean id="propertyConfigurer" 
	class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:db.properties" />
</bean>
		

Не всегда полезно все настройки хранить в одном конфигурационном файле. Некоторые параметры лучше хранить во внешнем db.properties файле. В нем прописываем все свойства необходимые для подключения к базе данных. В Spring нужно определить бин с именем propertyConfigurer (имя должно быть именно таким).

Для работы с JPA в Spring нам нужно определить бин, который будет EntityManagerFactory (название может быть любым). У этого бина может быть несколько реализаций: есть Local, а есть JNDI.

EntityManagerFactory – будет получаться из JNDI, когда запущена внутри контейнера. Если же не внутри контейнера, как мы это делаем на Tomcat (там нет контейнера), то мы сами будем создавать эту фабрику (тогда используется Local).

                        
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
         
        <property name="persistenceUnitName" value="unit_name" />
         
         <property name="jpaProperties">
             <props>
                 <prop key="hibernate.connection.url">
                     ${connectionURL}
                 </prop>
             <prop key="hibernate.connection.driver_class">
                     ${connectionDriverName}
             </prop>

             <prop … >

             </props>
         </property>
</bean>
		

После этого в файле persistence.xml осталось определить только PersistanceUnitProvider. ${connectionURL} – это свойства из файла db.properties.