Anda dapat menyebutkan atribut variabel Anda dalam file properti dan menentukan file properti khusus lingkungan seperti local.properties, production.propertied, dll.
Sekarang berdasarkan lingkungan, salah satu file properti ini dapat dibaca di salah satu pemroses yang dipanggil saat startup, seperti ServletContextListener.
File properti akan berisi nilai spesifik lingkungan untuk berbagai kunci.
Cicipi "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
Contoh "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
Untuk menggunakan file properti ini, Anda dapat menggunakan REsource seperti yang disebutkan di bawah ini
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 dapat didefinisikan sebagai variabel lingkungan dengan nilai yang sesuai untuk lingkungan lokal dan produksi.
Dengan perubahan ini, appplicationContext.xml akan memiliki perubahan berikut
<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}" />
Semoga ini membantu .