我的web/meta-inf/文件夹中有context.xml,其中包含数据库连接(池)详细信息。现在,我希望最终用户在某些属性文件和context.xml中提供我的应用程序的数据库详细信息,而不是从属性文件中直接将它们硬编码到属性文件中,而context.xml将从属性文件中读取数据库连接信息。
tomcat是否可以从某些属性文件替换占位符?
我了解了上下文管理器,但不确定将其放置在何处。
请提供您的输入。
谢谢
阿比舍克
最佳答案
您可以采用更好的方式进行操作。
在我们的案例中,我们具有用于不同配置文件的不同数据库,例如dev,UAT,pre-prod,support等。
所以我要做的是,将我的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/