springboot的启动原理

如需要此思维导图可去自行下载
链接:https://pan.baidu.com/s/1Jnj7j4aeGIRxKathP_I9Yw
提取码:9vkn
在这里插入图片描述
@SpringBootApplication注解下有三个核心注解,分别是

  1. @SpringBootConfiguration
  2. @EnableAutoConfiguration
  3. @ComponentScan

1.@SpringBootConfiguration

底层注解使用了@Configuration,
<在https://blog.csdn.net/qq_42480555/article/details/118359107?spm=1001.2014.3001.5501用纯注解方式整合dbutils时候讲过此注解,可点击查看标志当前类为IOC容器的配置类用法>
相当于在配置文件xml中配置的bean,SpringBootConfiguration注解会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。
例如springboot整合的redis操作类的配置类:在这里插入图片描述

2.@ComponentScan

扫描当前工程的java类,交给IOC容器,相当于之前<context:component-scan base-package=""/>包扫描

3.@EnableAutoConfiguration

此注解下有两个核心注解:

  1. @AutoConfigurationPackage
  2. @Import(AutoConfigurationImportSelector.class)
@AutoConfigurationPackage

获取当前启动类的包名,SpringBoot应用启动时默认会将启动类所在的package作为自动配置的package。

@Import(AutoConfigurationImportSelector.class)

在这里插入图片描述
AutoConfigurationImportSelector.class里实现了ImportSelector,内部扫描spring.factories文件,spring.factories如下:
在这里插入图片描述
获取springboot整合的所有全限定名,然后通过反射将所需对象加入到IOC容器(并不是将spring.factories所有字节码对象加载到IOC容器中,里面有个过滤机制,会根据当前项目的需要导入我们需要的对象)
这个注解作用就是将springboot整合后的操作类对象注入到IOC容器中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值