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

10-11 22:26
查看更多