Sie können Ihre Variablenattribute in einer Eigenschaftendatei erwähnen und umgebungsspezifische Eigenschaftendateien wie local.properties, Production.propertied usw. definieren.
Basierend auf der Umgebung kann nun eine dieser Eigenschaftendateien in einer der beim Start aufgerufenen Listener gelesen werden, z. B. im ServletContextListener.
Die Eigenschaftendatei enthält die umgebungsspezifischen Werte für verschiedene Schlüssel.
Beispiel "local.propeties"
db.logsDataSource.url=jdbc:mysql://localhost:3306/logs
db.logsDataSource.username=root
db.logsDataSource.password=root
db.dataSource.url=jdbc:mysql://localhost:3306/main
db.dataSource.username=root
db.dataSource.password=root
Beispiel "Produktion.Eigenschaften"
db.logsDataSource.url=jdbc:mariadb://111.111.111.111:3306/logs
db.logsDataSource.username=admin
db.logsDataSource.password=xyzqer
db.dataSource.url=jdbc:mysql://111.111.111.111:3306/carsinfo
db.dataSource.username=admin
db.dataSource.password=safasf@mn
Für die Verwendung dieser Eigenschaftendatei können Sie REsource wie unten beschrieben verwenden
PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
ResourceLoader resourceLoader = new DefaultResourceLoader();
Resource resource = resourceLoader.getResource("classpath:"+System.getenv("SERVER_TYPE")+"DB.properties");
configurer.setLocation(resource);
configurer.postProcessBeanFactory(beanFactory);
SERVER_TYPE kann als Umgebungsvariable mit geeigneten Werten für die lokale Umgebung und die Produktionsumgebung definiert werden.
Mit diesen Änderungen hat die appplicationContext.xml die folgenden Änderungen
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="${db.dataSource.url}" />
<property name="username" value="${db.dataSource.username}" />
<property name="password" value="${db.dataSource.password}" />
Hoffe das hilft .