Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Optimieren der JDBC-Abrufgröße durch Verwendung von Spring Boots application.properties

Ein BeanPostProcessor verarbeitet alle Beans im ApplicationContext Auf diese Weise können Sie zusätzliche Konfigurationen hinzufügen oder sie vollständig ersetzen, wenn Sie möchten.

Sie könnten einen BeanPostProcessor erstellen das würde die Eigenschaften der konfigurierten DataSource hinzufügen . Das folgende Beispiel geht von der Verwendung von commons-dbcp aus 1 oder 2, wenn Sie eine andere DataSource verwenden entsprechend ändern.

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);
    }
}

Jetzt können Sie dies zu Ihrer Konfiguration hinzufügen und es werden die Eigenschaften zu DataSource hinzugefügt Bohnen.

@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;
}

Das sollte ausreichen, um die Datenquelle zu konfigurieren.