最近在弄springboot整合mybatis,遇到一个非常诡异的问题:
1.新增一个BeanConfig用来配置dataSource等相关信息:
@Configuration
public class BeanConfig {
/**
*
* @return
*/
@Bean
@ConfigurationProperties("jdbc.love")
public DataSource dataSource() {
DataSource bean = DataSourceBuilder.create().build();
return bean;
}
2.在application.properties中添加dataSource相关配置:
db.url=127.0.0.1:3306
db.username=love
db.password=love
jdbc.love.driverClassName=com.mysql.jdbc.Driver
jdbc.love.url=jdbc:mysql://${db.url}/love?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.love.username=${db.username}
jdbc.love.password=${db.password}
jdbc.love.initialSize=0
jdbc.love.maxActive=20
jdbc.love.maxIdle=10
jdbc.love.minIdle=1
jdbc.love.maxWait=15000
jdbc.love.validationInterval = 15000
jdbc.love.testOnBorrow=true
jdbc.love.validationQuery=SELECT 1
3.启动项目执行SQL语句时,报错了:
这就很诡异了,在dataSource bean上添加了@ConfigurationProperties("jdbc.love")注解,正常来讲,springboot会在dataSource bean初始化时读取application.properties配置文件讲属性值一一注入dataSource属性,所以driverClassName不可能为空,url也不可能为空。
在网上搜了一下,有的是说application.properties文件存在重复&#x