あなたはより良い方法でそれを行うことができます。 は、私たちのケースでは、UATは、事前PRODなどサポートしていたので、私はやった
が、私はそのデフォルトの場所<TOMCAT_HOME>/conf
で私のcontext.xmlを入れdevのように、異なるプロファイルの異なるデータベースを持っていました。
はのcontext.xmlのリソースの設定で次のように持っていた:私は3台のTomcatサーバに作成
<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"/>
- サーバー-devを、サーバー・UAT、サーバー・サポート をし、各データベース内の対応する値を渡します(下図のように)日食/ IntelliJののTomcatサーバの設定でのTomcatのVM引数:
-DappName.db.url=jdbc:oracle:thin:@<DB_SERVER>:1521:<SID> -DappName.db.user=DB_USER -appName.db.password=DB_PASSWORD
利点があり、開発者は、データベースごとに、時間を変更する必要はありません、彼らはちょうど開始する必要があります特定のサーバー。これは非常に便利で、開発中に多くの時間を節約できました。
私のシステムでうまくいけば問題はありますが、問題は私のcontext.xmlがプロパティファイルからデータベースの詳細を読むことです。つまり、user = "sa"と書くのではなく、user = "$ { username} "とusername値はプロパティファイルで定義されます。 –
@Abhishekはantまたはmavenを使用してプロパティファイルからフィルタリングします。私はtomcatにはフィルタリング機能がないとは思わない。 – sal