Spring多数据源配置报错:无法识别配置属性及jdbcUrl缺失
Spring多数据源配置问题解决
问题原因
- 运行时异常:Spring Boot默认使用HikariCP作为数据源实现,Hikari要求数据库连接地址的配置属性名为
jdbc-url,而非你使用的url。当DataSourceBuilder构建HikariDataSource时,无法找到jdbcUrl属性值,因此抛出jdbcUrl is required with driverClassName异常。 - IDE提示无法解析:Spring Boot的配置元数据中不存在
spring.datasource.datasource1.url这类自定义前缀的url属性,换成Hikari标准的jdbc-url后,IDE就能识别该配置项。
解决方案
1. 修正application.properties配置
将配置中的url替换为jdbc-url:
# First DataSource spring.datasource.datasource1.jdbc-url=jdbc:mysql://192.168.3.89:3306 spring.datasource.datasource1.username=sendnotification1 spring.datasource.datasource1.password=a1s2d3f4 spring.datasource.datasource1.driver-class-name=com.mysql.cj.jdbc.Driver # Second DataSource spring.datasource.datasource2.jdbc-url=jdbc:mysql://192.168.3.22:3306 spring.datasource.datasource2.username=mysqluser spring.datasource.datasource2.password=x=47rFG_ spring.datasource.datasource2.driver-class-name=com.mysql.cj.jdbc.Driver
2. 确认依赖配置
确保项目依赖中包含spring-boot-starter-jdbc,该依赖已内置HikariCP支持:
<!-- Maven 依赖示例 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
3. 原有配置类无需修改
你的DataSourceConfig、JdbcTemplateConfig配置类逻辑正确,自动装配时通过@Qualifier指定JdbcTemplate的方式也没问题,修正配置文件后即可正常运行。
内容的提问来源于stack exchange,提问作者user19640780
相关产品推荐
相关产品推荐

