应用启动入口

在项目的基础包路径下,需要创建应用的启动类。该类必须包含标准的 main 方法,并在其中调用 Spring Boot 提供的启动方法,以初始化应用上下文。

常用启动方式有两种:

  1. 直接调用静态方法:
SpringApplication.run(Application .class, args);
  1. 使用流式构建器 API:
new SpringApplicationBuilder().

sources(Application .class).

run(args);

一个符合 Spring Boot 约定的典型项目包结构如下所示,其中启动类位于根包位置:

com
 +- example
     +- myproject
         +- Application.java           // 启动主类
         |
         +- domain                     // 领域模型层
         |   +- Customer.java
         |   +- CustomerRepository.java
         |
         +- service                    // 业务服务层
         |   +- CustomerService.java
         |
         +- web                        // Web控制层
             +- CustomerController.java

核心启动注解剖析

启动类上通常标注的 @SpringBootApplication 注解,是 Spring Boot 应用的核心标识。该注解实质上是一个组合注解,主要集成了以下三个关键注解的功能:

  • @SpringBootConfiguration:本质上是 @Configuration 注解的变体,用于标记当前类为配置类,替代传统的 XML 配置文件。
  • @EnableAutoConfiguration:启用 Spring Boot 强大的自动配置机制。如有需要,也可排除特定自动配置,例如禁用数据源自动配置:
    @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
  • @ComponentScan:启用组件扫描功能,自动发现并注册被 @Component@Service@Repository 等注解标记的 Bean。

配置文件详解

Spring Boot 支持两种类型的全局配置文件:applicationbootstrap。应用启动时会自动从 classpath 路径下加载这两种文件,支持
.properties(属性文件)和 .yml(YAML)两种格式。

  • Properties 格式:采用 key=value 的经典形式,易于理解。
  • YAML 格式:采用 key: value 的缩进结构,层次更加清晰直观。YAML 文件中的属性加载顺序是有定义的,但它不支持通过
    @PropertySource 注解导入。由于其结构化的特点,通常更受开发者青睐。

application 配置文件

这是应用级别的主配置文件,用于定义当前应用程序特有的各项参数,如服务器端口、数据库连接、日志级别等。

bootstrap 配置文件

这是系统级别的引导配置文件,优先级高于 application 文件。它主要用于以下场景:

  • 加载来自外部配置中心(如 Spring Cloud Config)的配置信息。
  • 定义那些在应用启动初期就需要且后续很少变更的系统级属性。
  • 由于它先于 application 文件加载,适合配置一些应用上下文构建之前的必要参数。

通过合理利用这两种配置文件,可以实现配置信息的分层管理,既能确保系统基础配置的稳定性,又能保持应用配置的灵活性。