You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

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包下,这就是你编译报错说类不存在的核心原因。

接下来给你具体的解决步骤:

  1. 修正导入语句
    把原来的导入代码:

    import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
    

    替换成:

    import org.springframework.boot.jdbc.DataSourceBuilder;
    
  2. 优化依赖配置(可选但推荐)
    其实你不需要单独引入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'
    
  3. 多数据源配置示例
    给你一个适配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

火山引擎 最新活动