我正在配置两个数据源,并尝试设置池化属性,根据文档,我应该使用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
以下是我的配置类: 我有一个类似的用于读取数据源(针对不同的 repo/entities)。
@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.*样式不起作用?我该怎么做才能让它起作用?
即使有人可以将我引导到一些有用的阅读材料来理解这个问题,我也会很高兴。 :)
spring.datasource.tomcat.*
属性。对我来说,即使是spring.datasource.test-on-borrow=true也无效。 - Nikhil Sahu