问题描述
我需要能够将数据库配置属性存储在 src | main | java | dbConnection.properties
中,并将其包含到 hibernate.cfg中。 xml
,其格式为 jstl 表达式。 (如:$ {密码}等)。如何做到这一点?
I need to be able to store database config properties in src|main|java|dbConnection.properties
and include it to hibernate.cfg.xml
in form of jstl expressions. (like : ${password} etc.). How to do it?
目前的hibernate.cfg.xml:
Current hibernate.cfg.xml:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.username">postgres</property>
<property name="connection.password">postgres</property>
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
</session-factory>
</hibernate-configuration>
我需要这样的东西:
I need something like this:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">${DRIVER}</property>
<property name="connection.username">${USERNAME}</property>
<property name="connection.password">${PASSWORD}</property>
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
</session-factory>
</hibernate-configuration>
推荐答案
您声明您使用Spring,那么为什么不让Spring尽一切努力。让一个属性占位符替换你想要的占位符。
You state that you use Spring then why not let Spring do all the hard work. Let a property placeholder replace the placeholders you want.
<context:property-placeholder location="classpath:dbConnection.properties" />
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="hibernateProperties">
<map>
<entry key="connection.driver_class" value="${DRIVER}" />
<entry key="connection.username" value="${USERNAME}" />
<entry key="connection.password" value="${PASSWORD}" />
<entry key="transaction.factory_class" value="org.hibernate.transaction.JDBCTransactionFactory" />
</map>
<property>
</bean>
免费的建议,而不是使用内部hibernate连接的东西(这不建议在生产中使用)在spring中配置一个数据源并将它连接到你的 LocalSessionFactoryBean
Free advice instead of using the internal hibernate connection stuff (which isn't adviced to be used in production) configure a datasource in spring and wire that to your LocalSessionFactoryBean
这篇关于如何将外部文件的属性包含到hibernate.cfg.xml中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!