在生产中使用不同的数据库提供程序设置

Using different database provider settings in production

说我想在开发和生产中使用不同的配置,并且想在两者之间轻松切换,这样我的 IDE 就可以直接使用开发设置,并且使用简单的Maven 命令我能够创建一个正常运行的 WAR.

许多属性都存储在资源下的 Isis 属性文件中。我知道 Maven 资源插件可以用环境变量和 Maven 属性替换 el 表达式。然而,这种替换只在打包阶段完成,所以这些表达式在“开发”中是无用的。

有人想出好的方法了吗?有没有办法在生产中加载不同的配置文件?

我们目前覆盖 context.xml 中的默认值以指向开发、测试和生产箱上的不同配置文件:

<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Manager pathname="" />
    <Parameter name="shiroConfigLocations" value="file:/var/isis-config/shiro.ini" override="false" />
    <Parameter name="isis.config.dir" value="/var/isis-config/" override="false" />
    <Parameter name="wicket.configuration" value="deployment" override="false" /> 
</Context>

/var/isis-config 文件夹包含以下文件:

  • isis.properties
  • logging.properties
  • persistor.properties
  • persistor_datanucleus.properties
  • shiro.ini
  • viewer_wicket.properties