Spring Boot 1.5升级2.0.0时DataSourceBuilder类缺失编译失败求助
解决Spring Boot 2.0.0中DataSourceBuilder找不到的问题
老哥,我刚好碰到过类似的Spring Boot版本升级坑,给你捋清楚怎么解决:
首先得明确:Spring Boot 2.0对不少核心类的包结构做了调整,DataSourceBuilder就是其中之一——它从原来的org.springframework.boot.autoconfigure.jdbc包直接迁移到了org.springframework.boot.jdbc包下,这就是你编译报错说类不存在的核心原因。
接下来给你具体的解决步骤:
修正导入语句
把原来的导入代码:import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;替换成:
import org.springframework.boot.jdbc.DataSourceBuilder;优化依赖配置(可选但推荐)
其实你不需要单独引入spring-boot-autoconfigure依赖,只要项目里引入了spring-boot-starter-jdbc或者spring-boot-starter-data-jpa这类starter,就已经包含了DataSourceBuilder所在的相关类。如果是Gradle配置,可以改成这样更简洁的写法:implementation 'org.springframework.boot:spring-boot-starter-jdbc' // 如果用JPA的话就换成这个 // implementation 'org.springframework.boot:spring-boot-starter-data-jpa'多数据源配置示例
给你一个适配Spring Boot 2.0的多数据源配置代码参考,确保能正常运行:@Configuration public class MultiDataSourceConfig { @Bean @Primary @ConfigurationProperties(prefix = "datasource.first") public DataSource firstDataSource() { return DataSourceBuilder.create().build(); } @Bean @ConfigurationProperties(prefix = "datasource.second") public DataSource secondDataSource() { return DataSourceBuilder.create().build(); } }
另外,升级时建议顺便排查下其他类的包路径变更(比如部分自动配置类的位置也有调整),避免踩更多类似的小坑。
内容的提问来源于stack exchange,提问作者Pepper




