如何在调试和发布模式下从不同位置加载Spring bean xml配置

时间:2015-10-17 12:15:48

标签: java spring hibernate

我使用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。

这就是问题 - 如何做到这一点?

2 个答案:

答案 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>