我想在不同上下文路径下的同一台Tomcat服务器上部署特定Web应用程序的多个独立副本。每个Web应用程序都需要不同的配置设置(数据库名称,密码等),但是我想保持战争完全相同。

我的计划是让应用在启动时找出其上下文路径,然后在由上下文路径标识的tomcat之外读取特定的.properties文件。例如,如果将战争部署到{tomcat path} / webapps / pineapple,那么我想阅读/config/pineapple.properties

我一直在尝试找到一种通过spring(3)注入ServletContext实例的方法,但是到目前为止,我所看到的所有建议都使用了不推荐使用的ServletContextFactoryBean。

有没有更好的方法来注入上下文路径或基于上下文路径来加载外部文件的更好方法?

最佳答案

扩展Propertyplaceholderconfigurer以使用DB来拾取值。示例here
将设置的实际值(数据库名称,密码等)作为种子数据的一部分加载到数据库
初始化网络应用的应用ctx时,将从数据库解析属性


这是我们一直遵循的方法,效果很好。如果可以切换到Spring 3.1,则它支持Environment Profiles,这可能对您有用。

10-02 21:55