Вы можете упомянуть свои переменные атрибуты в файле свойств и определить файлы свойств для конкретной среды, такие как local.properties, production.propertied и т. Д.
Теперь, в зависимости от среды, один из этих файлов свойств можно прочитать водин слушатель вызывается при запуске, например ServletContextListener.
Файл свойств будет содержать специфические для среды значения для различных ключей.
Пример "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
Пример «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
Для использования этого файла свойств вы можете использовать REsource, как указано ниже
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 можно определить как переменную среды ссоответствующие значения для местной и производственной среды.
С этими изменениями в appplicationContext.xml будут внесены следующие изменения
<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}" />
Надеюсь, это поможет.