Vous voulez charger des données liées à la base de données à partir d'un fichier de propriétés, mais vous voulez mettre en œuvre une fonctionnalité qui remplace ces données par des données de propriété système. Pourquoi ne pouvez-vous pas faire quelque chose comme ça ?
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;
...
Je pense que le comportement de remplacement dépendra de la façon dont vous implémentez le code qui va récupérer ces données à partir du fichier de propriétés et de la propriété système, pourquoi ne pas laisser toutes les données liées à la base de données dans un seul fichier de propriétés (avec des données de connexion multiples séparées par des noms de paramètres différents, par ex, jdbc.sqlserver.host & jdbc.oracle.host) et utiliser un drapeau pour identifier les données que vous voulez utiliser (vous pouvez placer ce drapeau dans une propriété système, par exemple, -Dcom.abc.project.model.jdbc.db=sqlserver).