You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot应用启动后无报错立即关闭 求助排查

Spring Boot应用启动后无报错自动关闭的排查思路

问题背景

刚创建了包含通用model/service/dto/controller/repository的Spring Boot应用,首次连接MySQL测试时,应用启动几秒后无报错立即关闭,Maven构建成功,尝试调整Tomcat依赖、增删spring-boot-starter-web等方案无效。

运行日志

:: Spring Boot ::                (v3.2.0)

2023-12-01T00:48:31.899-06:00  INFO 1456 --- [           main] com.example.backend.BackendApplication   : Starting BackendApplication using Java 19.0.2 with PID 1456 (C:\Users\marie\Downloads\backend\backend\target\classes started by marie in C:\Users\marie\Downloads\backend)
2023-12-01T00:48:31.947-06:00  INFO 1456 --- [           main] com.example.backend.BackendApplication   : No active profile set, falling back to 1 default profile: "default"
2023-12-01T00:48:32.998-06:00  INFO 1456 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2023-12-01T00:48:33.607-06:00  INFO 1456 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 542 ms. Found 1 JPA repository interface.
2023-12-01T00:48:35.159-06:00  INFO 1456 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2023-12-01T00:48:35.354-06:00  INFO 1456 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 6.3.1.Final
2023-12-01T00:48:35.457-06:00  INFO 1456 --- [           main] o.h.c.internal.RegionFactoryInitiator    : HHH000026: Second-level cache disabled
2023-12-01T00:48:36.183-06:00  INFO 1456 --- [           main] o.s.o.j.p.SpringPersistenceUnitInfo      : No LoadTimeWeaver setup: ignoring JPA class transformer
2023-12-01T00:48:36.238-06:00  INFO 1456 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2023-12-01T00:48:36.871-06:00  INFO 1456 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@30aec673
2023-12-01T00:48:36.874-06:00  INFO 1456 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2023-12-01T00:48:36.951-06:00  WARN 1456 --- [           main] org.hibernate.orm.deprecation            : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)
2023-12-01T00:48:38.198-06:00  INFO 1456 --- [           main] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
2023-12-01T00:48:38.270-06:00  INFO 1456 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2023-12-01T00:48:38.829-06:00  INFO 1456 --- [           main] com.example.backend.BackendApplication   : Started BackendApplication in 8.444 seconds (process running for 9.385)
2023-12-01T00:48:38.842-06:00  INFO 1456 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2023-12-01T00:48:38.846-06:00  INFO 1456 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
2023-12-01T00:48:38.869-06:00  INFO 1456 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.

Process finished with exit code 0

pom.xml文件

<?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>3.2.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>backend</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>backend</name>
    <description>Backend</description>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>6.1.1</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

BackendApplication启动类

package com.example.backend;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BackendApplication {

    public static void main(String[] args) {
        SpringApplication.run(BackendApplication.class, args);
    }

}

排查思路

  • 清理冲突依赖:移除pom.xml中单独的spring-web依赖(spring-boot-starter-web已包含适配版本),同时移除单独声明的spring-boot-starter-tomcat依赖(spring-boot-starter-web内置该依赖),避免版本冲突或重复加载导致容器初始化异常。
  • 验证Web容器启动状态:重新启动应用,检查日志中是否出现Tomcat初始化相关日志(如Tomcat initialized with port(s): 8080 (http)),确认Web容器是否正常启动。
  • 检查组件扫描范围:确保@SpringBootApplication的扫描范围覆盖所有业务组件,若组件不在启动类所在包或子包下,添加scanBasePackages属性指定扫描路径,例如@SpringBootApplication(scanBasePackages = "com.example")。
  • 排查JPA实体配置:检查所有model类的JPA注解是否正确(如是否添加@Entity、主键@Id等),实体配置错误可能导致应用初始化完成后无持续运行的触发点。
  • 确认Web应用类型配置:检查application.properties/application.yml中是否存在spring.main.web-application-type=none配置,如有则删除,确保应用被识别为Web应用。

内容的提问来源于stack exchange,提问作者clara bella

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 08:07:02