1

我正在处理的一个应用程序有几个 URL 和其他特定于实例的信息。第一遍使用带有属性文件的典型 Spring PropertyPlaceholderConfigurer :

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

主要问题当然是属性文件是必须签入的工件,并且要启动新实例需要更新该工件。为了简化部署,我希望 ApplicationContext 基于数据库表自行引导。我见过像这个论坛帖子这样的解决方案,这里有没有人知道更好的工具,或者这是解决这个问题的事实上的方法?我还希望能够在运行时使用 JMX 或其他工具更新/重新加载设置,但是在更改数据库后必须重新启动应用程序仍然是当前解决方案的更好解决方案。

4

1 回答 1

0

我们这样做的方式是将一些配置信息放入环境中,然后从那里提取相关信息。

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   <property name="searchSystemEnvironment" value="true" />
</bean>

如果配置更改,则需要重新启动应用程序。还可以将所有不同的配置放入环境并嵌套变量,如下所示:

<bean id="db" class="org.DataSource"
        p:databaseServer="${${MODE}_DBSERVER}"
        p:databaseName="${${MODE}_DBNAME}" />

其中 $MODE = dev、qa 等。

于 2011-03-16T21:04:41.427 回答