@SpringBootApplication详解 以及 pom 讲解

@SpringBootApplication是Spring Boot的核心注解,结合了@Configuration、@EnableAutoConfiguration和@ComponentScan。@SpringBootConfiguration是@Configuration的扩展,标记配置类。@EnableAutoConfiguration开启自动配置,包括扫描指定包下组件和导入自动配置类。Spring启动器负责版本管理和功能场景的starter引入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、@SpringBootApplication 主要有以下注解组成

@SpringBootConfiguration
@EnableAutoConfiguration

二、@SpringBootConfiguration

Spring Boot 配置类, 它本质上是@Configuration
@Configuration配置类注解,它本质上是一个组件@Component

@Configuration
public @interface SpringBootConfiguration {

@Component
public @interface Configuration {

三、@EnableAutoConfiguration 开启自动配置功能

有了这个注解,以前我们需要自己配置的东西,现在都交由spring boot配置

@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {

1. @AutoConfigurationPackage

@Import({Registrar.class})
public @interface AutoConfigurationPackage {

在Registrar–>registerBeanDefinitions–>AutoConfigurationPackages.register中,如下图:
获得@SpringBootApplication 标注类的包名,并把该包下的所有组件扫描到spring容器中(在registerBeanDefinition中将对象放到beanDefinition中)
在这里插入图片描述
2. @Import({AutoConfigurationImportSelector.class})
Spring Boot启动时从META-INF/spring.factories文件中获取EnableAutoConfiguration所指定的值,将这些值作为自动配置类导入容器中,自动配置类就生效,帮我们进行自动配置工作。
在这里插入图片描述
五、Spring启动器
spring-boot-starter-parent–>依赖于spring-boot-dependencies
Spring 的版本管理中心,我们导入的包默认不需要写版本(如果没在dependencies里管理的需要注明版本)

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.2.2.RELEASE</version>
    <relativePath>../../spring-boot-dependencies</relativePath>
  </parent>

在这里插入图片描述
六、SpringBoot 场景启动器
SpringBoot将所有的功能场景都抽取出来,做成Starters, 只需要在项目里引入这些starter, 相关依赖都会导进来。要用什么功能就导入什么场景的starter。

<!-- spring boot帮我们导入web模块正常运行所依赖的组件: jason, spring-webmvc, spring-web等-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值