我正在配置兩個數據源,並嘗試設置池化屬性,並根據文檔我應該使用spring.datasource.tomcat。*,似乎並不適用於我正在做的配置。我究竟做錯了什麼?或者我錯過了什麼?Spring Boot不會選擇spring.datasource.tomcat。*,而以編程方式配置數據源?
我application.properties:
spring.datasource.tomcat.test-on-borrow=true
spring.datasource.tomcat.validationQuery=SELECT 1
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username
spring.datasource.password
spring.read.datasource.tomcat.test-on-borrow=true
spring.read.datasource.tomcat.validationQuery=SELECT 1
spring.read.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.read.datasource.username
spring.read.datasource.password
下面是我的配置類: 我有一個類似的讀取數據源(不同回購/實體)
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactory",
transactionManagerRef = "transactionManager",
basePackages = "com.test.feature.repo.internal")
public class DataSourceConfig {
@Primary
@Bean("dataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource(){
return DataSourceBuilder.create().build();
}
@Primary
@Bean(name="entityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder,
@Qualifier("dataSource")DataSource dataSource){
return builder.dataSource(dataSource).packages("com.test.feature.entity.internal").persistenceUnit("defaultPersistenceUnit").build();
}
@Primary
@Bean(name="transactionManager")
public PlatformTransactionManager transactionManager(@Qualifier("entityManagerFactory") EntityManagerFactory entityManagerFactory){
return new JpaTransactionManager(entityManagerFactory);
}
}
如果我嘗試使用spring.datasource.test-on-borrow = true,那麼這個工作。
我真的很想知道爲什麼.tomcat。*樣式不起作用?我能做些什麼來完成這項工作?
即使有人將我重定向到一些有用的閱讀材料,以瞭解這一點,我會很高興。 :)
您正在使用哪個版本? –
我正在使用1.5.4 –
1.5.7中的情況與我相同。 DataSource沒有選擇'spring.datasource.tomcat。*'屬性。對我來說,即使spring.datasource.test-on-borrow = true也不起作用。 –