Betrachten Sie Spring Boot mit spring-boot-starter-jdbc
und dass Sie eine oder mehrere Datenquellen haben möchten, die in ihren Eigenschaftsnamen ein benutzerdefiniertes Präfix haben. Von dem, was ich in org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
sehe, sieht es für mich aus, dass die automatische Konfiguration nur mit dem Standard-Präfix spring.datasource
verwendet werden kann, aber sobald Sie es ändern, werden Sie auf eigene Faust die Eigenschaften in Bezug auf Pooling einrichten.Wie konfiguriert man Datenbankverbindungspooling mit benutzerdefiniertem Präfix in Spring Boot?
Kann jemand bitte erklären, wie man die Tomcat JDBC Pool DataSource eleganter konfiguriert (lesen Spring idiomatic)?
Aktuelle Arbeit um:
@Configuration
public class DatabaseConfiguration {
@Value("${datasource.api.tomcat.maxWait:5000}")
private int maxWaitMillis;
@Value("${datasource.api.tomcat.test-on-borrow:true}")
private boolean testOnBorrow;
@Value("${datasource.api.tomcat.validation-query:SELECT 1}")
private String validationQuery;
@Bean(name = "apiDataSource")
@ConfigurationProperties(prefix = "datasource.api")
public DataSource apiDataSource() {
DataSource ds = DataSourceBuilder.create().build();
// Assume we make use of Apache Tomcat connection pooling (default in Spring Boot)
org.apache.tomcat.jdbc.pool.DataSource tds = (org.apache.tomcat.jdbc.pool.DataSource) ds;
tds.setTestOnBorrow(testOnBorrow);
tds.setValidationQuery(validationQuery);
tds.setMaxWait(maxWaitMillis);
return ds;
}
}