0
考慮彈簧啓動與spring-boot-starter-jdbc
,你想有一個或多個數據源,其中有一個自定義前綴的屬性名稱。從我看到的org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
看來,在我看來,自動配置只能與默認前綴spring.datasource
一起使用,但只要您修改它,您將自行設置關於池的屬性。如何在Spring Boot中使用自定義前綴配置數據庫配置連接池?
有人可以請說明如何配置Tomcat JDBC池數據源更優雅(閱讀春季慣用)?
當前解決方法:
@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;
}
}