看完这篇SpringBoot配置原理,你就自己手写一个吧

每天叫醒你的不是闹钟,而是梦想

01

前言

上一篇推文我们讲了几道SpringBoot面试题,今天我们来继续深入研究SpringBoot自动配置原理

从SpringBoot的启动类入手

@SpringBootApplication:

昨天已经提过,该注解是SpringBoot的核心注解,其源码由

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan

三个注解组成,而我们今天要说的就是@EnableAutoConfiguration注解

该注解的作用就是自动配置注解

进入该注解源码

从AutoConfigurationImportSelector.class这个类入手,进入源码,上篇推文提过,SpringBoot的自动配置原理就是由@Import注解注入了ImportSelectors接口的实现类AutoConfigurationImportSelector,进入ImportSelectors源码中查看

02

ImportSelector解释

对注释翻译(小编英语水平较低,勿喷):

ImportSelector接口可以实现以下几个接口:
EnvironmentAware
BeanFactoryAware
BeanClassLoaderAware
ResourceLoaderAware
且上述接口的方法会在ImportSelectors接口的方法调用之前调用

ImportSerlectors接口方法selectImports注释翻译:

选择与返回….

算了还是看有道翻译吧

猜想 : 该方法可以返回导入类的名称,也就是自动导入类的名称?

OK。继续…….

03

验证猜想

我们现在返回AutoConfigurationImportSelector类中,顺便在返回值的代码打个断点,验证我们刚刚所分析的,启动

通过debug我们可以看到AutoConfigurationImportSelector一共自动配置了40个Bean。

而@Import的作用就是为我们自动将Bean对象注入到IOC容器中

也就是在SpringBoot启动类启动的时候为什么注入了40个Bean对象。

根据上面的讲解,接下来我们通过自己手写一个SpringBoot自动配置类来对Bean对象实现自动注入到IOC容器。

04

实践

步骤:

1.       需要注入到IOC容器的Bean对象

2.       需要一个启动类来启动SpringApplication

3.       启动类需要使用@Import注解来自动注入Bean对象到IOC容器。

1. Bean对象

2. 启动类与@Import注解

3.Console(已经创建了对象,并将Bean对象注入到IOC容器中)

看完懂了?会了?评论给个666吧,哈哈哈!!!

谢谢阅读

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值