SpringBoot应用启动后立即自动退出问题求助(附pom.xml)
SpringBoot应用启动后立即终止退出问题排查
问题现象
- 程序启动后无持续运行日志,直接终止退出
- 运行异常截图:启动报错截图
现有项目POM配置
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.0</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>Meituan</artifactId> <version>0.0.1-SNAPSHOT</version> <name>Meituan</name> <description>Meituan</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.23</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
排查方向与解决方法
按出现概率从高到低排查:
- 数据源配置错误/缺失:项目引入了MyBatis-Plus、Druid连接池、MySQL驱动三类数据库相关依赖,SpringBoot启动时会自动初始化数据源。如果
application.yml/application.properties中没有配置正确的数据库连接地址、账号、密码、驱动类,会直接触发启动失败。如果暂时不需要连接数据库测试启动,可以在启动类注解上排除数据源自动配置:@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) - 启动类写法或位置错误:首先确认启动类添加了
@SpringBootApplication注解,main方法中存在SpringApplication.run(启动类名.class, args);代码,漏写这行程序执行完main方法会直接退出。其次确认启动类放在所有业务代码的根包下(比如包名是com.example.meituan,启动类就放在这个包路径下),SpringBoot默认只扫描启动类所在包及其子包的组件,位置不对会导致必要Bean加载失败。 - Maven依赖加载不全:虽然已经引入了
spring-boot-starter-web依赖,但如果本地Maven仓库依赖下载损坏,内嵌Tomcat容器没有被正确引入,应用不会启动Web服务,初始化完成后会直接退出。在项目根目录执行命令强制更新依赖即可:mvn clean install -U - 端口被占用:如果控制台日志提示
Port 8080 was already in use,说明默认Web端口被其他程序占用,要么关闭占用端口的进程,要么在配置文件中添加配置修改端口:server: port: 8081 # 换成未被占用的端口
排查时优先看控制台日志中
Caused by:开头的行,这里会直接标注启动失败的根因,比顺着上层错误栈排查效率高很多。
内容的提问来源于stack exchange,提问作者Linda
相关产品推荐
相关产品推荐

