एक BeanPostProcessor
ApplicationContext
में सभी बीन्स को प्रोसेस करेगा और इस तरह आप अतिरिक्त कॉन्फ़िगरेशन जोड़ सकते हैं या यदि आप चाहें तो इसे पूरी तरह से बदल सकते हैं।
आप एक BeanPostProcessor
बना सकते हैं जो कॉन्फ़िगर किए गए DataSource
. में गुण जोड़ देगा . नीचे दिया गया नमूना commons-dbcp
. के उपयोग को मानता है 1 या 2 यदि आप किसी भिन्न DataSource
. का उपयोग करते हैं तदनुसार संशोधित करें।
public class DataSourceConfiguringBeanPostProcessor implements BeanPostProcessor {
private final Map<String,String> properties = new HashMap<>;
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (bean instance BasicDataSource ) {
for (Map.Entry<String, String> prop : properties.entrySet()) {
((BasicDataSource) bean).addConnectionProperty(prop.getKey(), prop.getValue());
}
}
return bean;
}
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
public void setProperties(Map<String, String> properties) {
this.properties.putAll(properties);
}
}
अब आप इसे अपने कॉन्फ़िगरेशन में जोड़ सकते हैं और यह गुणों को DataSource
. में जोड़ देगा फलियां।
@Bean
public BeanPostProcessor dataSourcePostProcessor() {
DataSourceConfiguringBeanPostProcessor processor = new DataSourceConfiguringBeanPostProcessor();
Map<String, String> properties = new HashMap<>();
properties.put("defaultRowPrefetch", "15");
properties.put("defaultBatchValue", "25");
processor.setProperties(properties);
return processor;
}
डेटा स्रोत को कॉन्फ़िगर करने के लिए उसे चाल चलनी चाहिए।