我已经将 springboot 从 2.2.3.RELEASE 升级到 2.7.9,然后数据源 bean 创建开始抛出以下异常
通过构造函数参数 0 表示的未满足的依赖;嵌套异常是 org.springframework.boot.context.properties.ConfigurationPropertiesBindException:创建名为“primaryDataSource”的 bean 时出错:无法将属性绑定到“DataSource”:prefix=app.datasource.primary,ignoreInvalidFields=false,ignoreUnknownFields=true;嵌套异常是 org.springframework.boot.context.properties.bind.BindException:无法将“app.datasource.primary”下的属性绑定到 javax.sql.DataSource"
我在配置中的属性如下
app:
datasource:
primary:
minimum-idle: 5
maximum-pool-size: 20
connection-timeout: 30000
maxLifetime: 540000
idleTimeout: 30000
url: "jdbc:mysql://url"
driver-class-name: com.mysql.cj.jdbc.Driver
username: user
password: pwd
豆法
@Bean(name = "primaryDataSource")
@ConfigurationProperties("app.datasource.primary")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
依赖关系
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.32</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>4.0.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
相同的设置适用于 2.2.X spring boot 版本,我缺少什么
我在配置中提到了 jdbc url 作为
url: "jdbc:mysql://url"
它需要更新为
jdbc-url: "jdbc:mysql://url"