A
BeanPostProcessor将以处理所有bean
ApplicationContext,这样,您可以添加其他配置,或者根据需要完全替换它。
您可以创建一个
BeanPostProcessor将属性添加到已配置的
DataSource。
commons-dbcp如果您相应地使用其他
DataSource修改,则下面的示例假定使用1或2 。
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); }}现在,您可以将其添加到配置中,它将属性添加到
DataSourcebean。
@Beanpublic 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;}这应该可以完成配置数据源的技巧。



