Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Otimizando o tamanho da busca JDBC usando Spring Boots application.properties


Um BeanPostProcessor irá processar todos os beans no ApplicationContext e dessa forma você pode adicionar configuração adicional ou substituí-la totalmente, se desejar.

Você pode criar um BeanPostProcessor que adicionaria as propriedades ao DataSource configurado . A amostra abaixo pressupõe o uso de commons-dbcp 1 ou 2 se você usar um DataSource diferente modifique em conformidade.
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);
    }
}

Agora você pode adicionar isso à sua configuração e adicionará as propriedades ao DataSource feijões.
@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;
}

Isso deve funcionar para configurar a fonte de dados.