我使用Spring和Hibernate使用非Web应用程序。我正在/src/main/resources/Hibernate.xml
中创建sessionFactory bean <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
....login, password, etc
没关系,但是当我完成一些更改后,我想创建一个可执行jar文件并将其放入另一个服务器,其中位于不同的数据库中。问题是我每次创建jar文件时都要打开jar文件并更改数据库配置,以使其与不同服务器上的外部数据库兼容。
此问题的解决方案是从jar文件的外部加载Hibernate.xml。
这就是问题 - 如何做到这一点?
答案 0 :(得分:1)
如果两个环境之间的不同之处是数据库地址和凭据,我建议将它们放入属性文件中并使用XML配置中的占位符(docs)。
然后,您可以访问属性文件作为类路径资源(在Spring配置中,使用classpath:
前缀作为文件路径),您可以在运行时配置,或者让您的构建系统复制文件的不同版本根据目标环境进入JAR(在Maven中,可以使用Assembly plugin完成)。
答案 1 :(得分:0)
解决方案是添加&#34;文件:&#34;前缀:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="file:config/hibernate.properties" />
</bean>