java - 在哪里/如何为 Tomcat .war 文件设置配置资源

标签 java configuration tomcat

我有一个 .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/

相关文章:

java - Tomcat web 应用程序与其他外部部署的 tomcat web 应用程序进行通信

java - YUI Compressor 在 Tomcat 中从 WAR 运行时抛出 StringIndexOutOfBoundsException

java - 方法参数的通用类型转换不可能,为什么?

java - 带有 Java GUI Builder 的 GUI,用于上传图像并动态显示到面板(在 GUI 内)

java - 减去2个数据库表时查询错误

servlets - 如何在 Struts 2 应用程序中读取文本文件

php - 为什么 Apache 支持 PHP、Perl、Python... 但不支持 Servlet?

java - 如何将 Java ComboBox 的宽度设置为与其所在的 JPanel 一样宽?

android - 添加后重新配置小部件

grails - 如何让 prometheus 导出器在我的 grails 应用程序中运行?