Oracle
 sql >> Database >  >> RDS >> Oracle

Ottimizzazione della dimensione del recupero JDBC mediante l'uso di Spring Boots application.properties

Un BeanPostProcessor elaborerà tutti i bean nel ApplicationContext e in questo modo puoi aggiungere una configurazione aggiuntiva o sostituirla completamente se lo desideri.

Potresti creare un BeanPostProcessor che aggiungerebbe le proprietà al DataSource configurato . L'esempio seguente presuppone l'uso di commons-dbcp 1 o 2 se utilizzi un DataSource diverso modificare di conseguenza.

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

Ora puoi aggiungerlo alla tua configurazione e aggiungerà le proprietà a DataSource fagioli.

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

Questo dovrebbe fare il trucco per configurare l'origine dati.