java - Web/Meta-Inf/Context.xml 可以从某些属性文件中读取 Tomcat

标签 java

我的 web/meta-inf/文件夹中有包含数据库连接(池)详细信息的 context.xml。现在我希望我的应用程序的数据库详细信息由最终用户在某些属性文件中提供,context.xml 从属性文件中读取数据库连接信息,而不是直接将它们硬编码到文件中。

tomcat 是否可以替换某些属性文件中的占位符?

我阅读了有关上下文管理器的信息,但不确定将其放置在何处。

请提供您的意见。

谢谢 阿比舍克

最佳答案

你可以用更好的方式做到这一点。 在我们的例子中,我们有不同的数据库用于不同的配置文件,例如开发、UAT、预生产、支持等。

所以我所做的是,我将我的 context.xml 放在它的默认位置 <TOMCAT_HOME>/conf .

在 context.xml 的资源配置中有以下内容:

<Resource name="jdbc/someDS" 
          auth="Container"
          type="javax.sql.DataSource" 
          driverClassName="oracle.jdbc.OracleDriver"
          url="${appName.db.url}"
          username="${appName.db.user}"
          password="${appName.db.password}"
          maxActive="30" 
          maxIdle="10"
          defaultAutoCommit="true"
          maxWait="-1"/>

我创建了三个 tomcat 服务器 - server-dev、server-uat、server-support 并在 eclipse/intellij 的 tomcat 服务器配置中的 tomcat 的 vm 参数中传递每个数据库的相应值(如下所示):

-DappName.db.url=jdbc:oracle:thin:@<DB_SERVER>:1521:<SID> -DappName.db.user=DB_USER -appName.db.password=DB_PASSWORD

优点是,开发人员不需要每次都更改数据库,他们只需要启动一个特定的服务器。这非常方便,在我们的开发过程中节省了大量时间。

关于java - Web/Meta-Inf/Context.xml 可以从某些属性文件中读取 Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/878246/

相关文章:

java设计: repetitive methods of sub-objects

java - 在2个服务器之间传输InputStream

Java block 键盘按下

java - 用于安排任务的 Cron 表达式

java - tomcat服务无法访问文件系统(linux)

java - 胶水应该放在哪里?

java - Spring Boot尝试使用@JsonTest注释在测试中创建mongo存储库

java - 内置(或流行的第 3 方库)在原始类型和相应引用类型 ("wrapper"之间进行映射的方式)?

java - 参数太少。预期 1 个错误 - 使用 MS Access 的 DateDiff 函数时

java - 在 Java 中设置 SSL 验证的正确方法