我的 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/