@SpringBootApplication注解源码解析

@SpringBootApplication注解源码解析

@SpringBootApplication注解主要由4类注解组成,分别为:JDK原生注解(4个)、@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan。

在这里插入图片描述

一、JDK原生注解4个

​ @Target(ElementType.TYPE) //当前注解的使用范围

​ @Retention(RetentionPolicy.RUNTIME) //生命周期

​ @Documented //声明在生成 doc 文档时是否带着注解

​ @Inherited //声明是否子类会显示父类的注解

二、@SpringBootConfiguration(重要)

点开查看该注解的源码,可以发现本质是@Configuration,说明该类是个配置类功能等同于xml配置文件,实现配置文件的功能。

在这里插入图片描述

三、@EnableAutoConfiguration(重要)

点开该注解的源码,可以发现本质是@Import,自动导入功能。借助该注解的帮助,将所有符合自动配置条件的 bean 定义加载到 IOC 容器中。@EnableAutoConfiguration会根据类路径中的 jar 依赖为项目进行自动配置。

在这里插入图片描述

★SpringBoot自动装配的原理:

SpringBoot 启动的时候,会调用 run 方法,run 方法会刷新容器,刷新容器的时候他会通过 @EnableAutoConfiguration 注解找到META-INF/spring.factories 文件中的所有自动配置类,我们会在启动的时候把这些配置类加载到容器里面,这些配置类里面有好多的条件注解,他会根据我们有没有引入相应的 jar 包,有没有注入一些 bean 来自动的给我们的容器注入我们需要的 bean ,于是就实现了自动装配。

四、@ComponentScan(重要)

包扫描功能,其实就是自动扫描并加载符合条件的组件(如@Component )或者 bean 定义, 最终将这些 bean 定义加载到 IOC 容器中. 也可以通过 basePackages 等属性来细粒度的定制 @ComponentScan 自动扫描的范围, 如果不指定, 则默认扫描 @ComponentScan 所在类的 package 及子包进行扫描。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我真真的是小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值