プロパティ ファイルからいくつかの db 関連データをロードしたいが、そのデータをシステム プロパティ データでオーバーライドする機能を実装したい場合、なぜこのようなことができないのでしょうか?
Properties prop = new Properties();
try {
prop.load(new FileInputStream("config.properties"));
String connUrl = prop.getProperty("com.abc.project.model.jdbc.ConnectionUrl");
String theOtherConnUrl = System.getProperty("com.abc.project.model.jdbc.ConnectionUrl");
if(theOtherConnUrl!=null){
connUrl = theOtherConnUrl;
...
オーバーライドの動作は、プロパティ ファイルとシステム プロパティの両方からこのデータを取得するコードを実装する方法に依存すると思います。DB 関連のすべてのデータを単一のプロパティ ファイル (複数の接続データ) 内に残してはいけません。 jdbc.sqlserver.host と jdbc.oracle.host のように異なるパラメータ名で区切り、フラグを使用して、使用するデータを識別します (このフラグは、-Dcom.abc のようにシステム プロパティに配置できます)。 project.model.jdbc.db=sqlserver)。