@springbootapplication 是 spring boot 启动核心注解,整合@configuration、@enableautoconfiguration 和@componentscan,需标注在含 main 方法的根包启动类上,用于自动配置、组件扫描与容器启动。

@SpringBootApplication 是 Spring Boot 应用的启动核心注解,它本身是一个复合注解,集成了 @Configuration、@EnableAutoConfiguration 和 @ComponentScan 的功能。使用它,Spring Boot 就能自动配置上下文、扫描组件、加载配置,并启动内嵌 Web 容器(如 Tomcat)。
主启动类必须加 @SpringBootApplication
Spring Boot 要求在某个类上标注该注解,并且该类通常包含 public static void main(String[] args) 方法。这是应用的入口点。
- 推荐放在根包(root package)下,比如
com.example.demo,这样@ComponentScan才能默认扫描到所有子包中的@Controller、@Service等组件。 - 不能放在没有包名的默认包中(即不声明
package),否则组件扫描会失效。
启动类的标准写法
一个典型的启动类长这样:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
其中 SpringApplication.run(...) 会创建并刷新 ApplicationContext,完成自动配置和 Bean 初始化。
常见自定义方式
虽然默认行为已足够常用,但你也可以按需调整:
- 排除某个自动配置类:用
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class) - 指定扫描包范围:用
@SpringBootApplication(scanBasePackages = "com.example.service") - 禁用 Web 环境(如做批处理):在
run()前调用new SpringApplication(...).setWebApplicationType(WebApplicationType.NONE)
启动失败时先看控制台日志
如果启动报错,Spring Boot 会在控制台输出详细的错误原因和建议,比如端口被占、配置缺失、Bean 冲突等。重点关注 “APPLICATION FAILED TO START” 区域,它通常会指出哪个 @Bean 或配置项出了问题。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











