sql >> Databáze >  >> RDS >> Oracle

Optimalizace velikosti načítání JDBC pomocí aplikace Spring Boots application.properties

A BeanPostProcessor zpracuje všechny boby v ApplicationContext a tímto způsobem můžete přidat další konfiguraci nebo ji zcela nahradit, pokud chcete.

Můžete vytvořit BeanPostProcessor které by přidaly vlastnosti do nakonfigurovaného DataSource . Níže uvedený příklad předpokládá použití commons-dbcp 1 nebo 2, pokud používáte jiný DataSource odpovídajícím způsobem upravit.

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

Nyní to můžete přidat do své konfigurace a přidá vlastnosti do DataSource fazole.

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

To by mělo stačit pro konfiguraci zdroje dat.




  1. Chyba příkazu COPY a nového řádku

  2. C# DateTime se mění na jiný formát

  3. Proč \G v SELECT * FROM název_tabulky\G?

  4. Existuje pro MySQL režim SQL umožňující WHERE x =NULL (což znamená, KDE x JE NULL)?