sql >> Database >  >> RDS >> Oracle

JDBC-ophaalgrootte optimaliseren door gebruik te maken van Spring Boots application.properties

Een BeanPostProcessor verwerkt alle bonen in de ApplicationContext en op die manier kunt u extra configuratie toevoegen of deze volledig vervangen als u dat wilt.

Je zou een BeanPostProcessor . kunnen maken die de eigenschappen zou toevoegen aan de geconfigureerde DataSource . Het onderstaande voorbeeld gaat uit van het gebruik van commons-dbcp 1 of 2 als u een andere DataSource gebruikt dienovereenkomstig wijzigen.

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 kunt u dit toevoegen aan uw configuratie en het zal de eigenschappen toevoegen aan DataSource bonen.

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

Dat zou de truc moeten zijn voor het configureren van de gegevensbron.




  1. Begrip casten van bytea naar oid

  2. Update met een subquery in MySQL

  3. Hoe MapReduce werkt in Hadoop

  4. Gelijktijdige MySQL-updates