我目前已配置spring boot以使用两个不同的数据源。该应用程序运行正常,但是当我启动弹簧启动应用程序时,我会重复警告10次,如下所示:
2018-06-05 10:28:15.897 WARN 8496 --- [r:// myScheduler] o.a.tomcat.jdbc.pool.PooledConnection:未加载JDBC驱动程序,因为driverClassName属性为null。
正如我所提到的,这并没有影响我的申请,但我想知道为什么我会收到这种警告,如果有办法解决它。
答案 0 :(得分:0)
使用两个或多个数据源时,您需要自己配置它们。在这种情况下,将不会使用Spring Boot的DataSourceAutoConfiguration(以及DataSourceProperties)。
您很可能在application.properties文件中具有相关的数据库详细信息,例如JDBC驱动程序类名称的名称,如下所示:
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
primary.datasource.url=jdbc:sqlserver://xxx.yyy.zzz.www:1433;databaseName=primaryDB
primary.datasource.username=username
primary.datasource.password=password
other.datasource.url=jdbc:sqlserver://xxx.yyy.zzz.www:1433;databaseName=otherDb
other.datasource.username=otheruser
other.datasource.password=otherpassword
因此,要设置数据源的驱动程序类名称,只需说:
@Value("${spring.datasource.driver-class-name}")
String driverClassName;
@Primary
@Bean(name = "primaryDb")
@ConfigurationProperties(prefix = "primary.datasource")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().driverClassName(driverClassName).build();
}
@Bean(name = "otherDb")
@ConfigurationProperties(prefix = "other.datasource")
public DataSource otherDataSource() {
return DataSourceBuilder.create().driverClassName(driverClassName).build();
}