Değişken özelliklerinizden bir özellik dosyasında bahsedebilir ve local.properties, production.propertied vb. Gibi ortama özgü özellik dosyalarını tanımlayabilirsiniz.
Artık ortama bağlı olarak, bu özellik dosyalarından biri, ServletContextListener gibi, başlangıçta çağrılan dinleyicilerden birinde okunabilir.
Özellik dosyası, çeşitli anahtarlar için ortama özgü değerleri içerecektir.
Örnek "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
Örnek "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
Bu özellikler dosyasını kullanmak için, aşağıda belirtildiği gibi REsource'tan yararlanabilirsiniz.
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, yerel ve üretim ortamı için uygun değerlere sahip ortam değişkeni olarak tanımlanabilir.
Bu değişikliklerle, appplicationContext.xml aşağıdaki değişiklikleri içerecektir
<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}" />
Bu yardımcı olur umarım .