Vous pouvez mentionner vos attributs de variable dans un fichier de propriétés et définir des fichiers de propriétés spécifiques à l'environnement comme local.properties, production.propertied, etc.
Maintenant en fonction de l'environnement, l'un de ces fichiers de propriétés peut être lu dans l'un des écouteurs appelés au démarrage, comme le ServletContextListener.
Le fichier de propriétés contiendra les valeurs spécifiques à l'environnement pour différentes clés.
Exemple de "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
Exemple de "production.properties"
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
Pour utiliser ce fichier de propriétés, vous pouvez utiliser REsource comme mentionné ci-dessous
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 peut être défini comme la variable d'environnement avec des valeurs appropriées pour l'environnement local et de production.
Avec ces modifications, appplicationContext.xml aura les modifications suivantes
<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}" />
J'espère que cela t'aides .