sql >> Databasteknik >  >> RDS >> Oracle

Optimera JDBC-hämtningsstorlek genom att använda Spring Boots application.properties

En BeanPostProcessor kommer att bearbeta alla bönor i ApplicationContext och på så sätt kan du lägga till ytterligare konfiguration eller ersätta den helt om du vill.

Du kan skapa en BeanPostProcessor som skulle lägga till egenskaperna till den konfigurerade DataSource . Exemplet nedan förutsätter användningen av commons-dbcp 1 eller 2 om du använder en annan DataSource ändra i enlighet med detta.

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

Nu kan du lägga till detta i din konfiguration och det kommer att lägga till egenskaperna till Datakälla bönor.

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

Det borde göra susen för att konfigurera datakällan.




  1. Hur sammanfogar man två strängar under MySQL UPDATE-fråga?

  2. MySQL-grupp efter rader i följd

  3. MySQL ger fluktuerande radantal när jag frågar schema?

  4. Slumpmässiga id i sqlalchemy (pyloner)