我有一个 .war 文件的源代码树,我需要修改它以便我可以添加一些特定于应用程序的配置信息(在本例中是一个 jdbc 连接字符串,但我可能有其他属性,如资源)。关于在哪里放置配置信息以及如何从 Servlet 访问这些信息的最佳做法是什么?
我猜这是 Tomcat configuration reference与它有关,但当我试图阅读它时,我的眼睛呆滞了。
最佳答案
对于 Web 应用程序配置,您可以将配置放在类路径中的某处。然后您可以使用 getResourceAsStream 从您的应用程序访问它或者如果你更喜欢 Spring:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:my-config.properties</value>
</list>
</property>
</bean>
在 Tomcat 的类路径中有很多地方可以放置属性。为了它看起来:
/WEB-INF/classes of your web application
/WEB-INF/lib/*. jar of your web application
$CATALINA_HOME/common/classes
$CATALINA_HOME/common/endorsed/*.jar
$CATALINA_HOME/common/i18n/*.jar
$CATALINA_HOME/common/lib / *. jar
$CATALINA_BASE/shared/classes
$CATALINA_BASE/shared/lib/*.jar
例如,如果您将 my-config.properties 同时放在 .jar 文件和 WEB-INF/classes 中,那么将使用 WEB-INF/classes 中的那个。您可以使用此机制默认测试配置并覆盖生产服务器上的生产配置。
关于java - 在哪里/如何为 Tomcat .war 文件设置配置资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1521957/