Spring Boot升级至2.7.0启动报DataSource配置错误处理方法
问题原因
- 核心报错原因:项目引入了
spring-boot-starter-jdbc、spring-boot-starter-data-jpa和PostgreSQL驱动依赖,Spring Boot启动时会自动触发数据源自动配置逻辑,但你没有配置数据库连接必需的url、用户名、密码等参数,也没有引入H2/HSQL这类嵌入式数据库,导致数据源初始化失败,直接中断启动流程。 - POM配置错误:
exec-maven-plugin属于Maven构建插件,你错误将其放在了普通依赖<dependencies>标签下,没有放到构建插件的配置块中,不符合Maven配置规范,会导致插件加载逻辑异常。 - 版本配置不统一:POM中声明的Java版本为1.8,但实际运行环境使用的是JDK 17,版本不匹配后续可能触发编译、运行兼容问题。
解决方法
- 补全数据源配置
在项目src/main/resources路径下的application.properties(或application.yml)配置文件中添加PostgreSQL连接参数,示例配置如下:
如果暂时不需要连接数据库,仅做项目启动测试,可以在启动类上排除数据源自动配置,代码示例:# 替换为你本地实际的数据库地址、端口、库名 spring.datasource.url=jdbc:postgresql://localhost:5432/你的数据库名称 spring.datasource.username=你的数据库登录用户名 spring.datasource.password=你的数据库登录密码 spring.datasource.driver-class-name=org.postgresql.Driver # JPA同步表结构配置,可根据需求调整 spring.jpa.hibernate.ddl-auto=update@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } - 修正POM中插件的位置
将<dependencies>标签下的exec-maven-plugin配置块删除,移动到<build><plugins>标签下,和Spring Boot打包插件平级,修正后的build配置块示例:<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.0.0</version> </plugin> </plugins> </build> - 统一Java运行版本
Spring Boot 2.7.0版本原生支持JDK17,直接将POM中<properties>下的<java.version>值从1.8改为17,和你当前环境的JDK版本保持一致即可,避免版本不兼容问题。
内容的提问来源于stack exchange,提问作者Baris Aaron
相关产品推荐
相关产品推荐

