最简单的SpringBoot(3.0)的自动配置原理教程,看完不白雪!

最简单的SpringBoot(3.0)的自动配置原理教程,看完不白雪!

虽然是3,但是原理是一样样的

首先聊一下,为什么要去学这个点东西,当然是面试比较常问啊hhh(谁让咱家SB比较火热呢),为什么 比较常问呢?(因为大家都爱问,我不问岂不是显得我很特别?)因为日常的生产中啊,咱们经常会定义一些公共的组件,提供给各个团队的使用,为了将别人使用这些组件的时候更方便,我们通常会把这些组件定义成一些公共的starter,比如(mybatis-spring-boot-starter),那如果说你想自定义starter的话,你就必须先了解自动配置的原理(自定义starter教程明天发,大家可以先去看看mybatis的starter,绝不白雪)等你看完这篇教程以后呢,就可以完美的解决以上的问题,到时候年薪百万不是梦啊(我不行但你们肯定行hang~)

正文

所谓的自动配置,就是boot工程启动后,起步依赖中的一些bean对象会自动的注入到ioc容器里面去(约定大于配置)

之前我们学习注册三方bean的时候,流程是

【引入三方jar——编写配置类——使用@Bean|@Import将其进行导入,(不理解看我上一篇)SpringBoot中如何注册第三方Bean

我们日常编写的公共组件就可以看做是第三方的jar,我们想要使用这些组件带来的便捷,说白了就是拿着里面的类直接用,就需要把他放到IOC容器里面交给Spring管理,上述的流程虽然能够完成注册Bean到IOC,但是,自动了么?回顾一下,我们去引入mybatis的起步依赖之后,像SqlSessionFactoryBean这种Bean对象就自动的注入到IOC容器里面去了,我们有去做相应的配置么?答案显然是否定的。那究竟怎么才能让它自动呢?保留这个疑问,接下来我们从源码里去找一下答案,看看SpringBooot的自动配置究竟是怎么个事。

前戏引入

都说天下文章一大抄,你也抄来我也抄。在学习自动配置之前,我们先来验证一个问题,引入了对应的起步依赖,启动后会不会自动的把对应的bean对象注入到ioc容器里
就以 spring-boot-starter-web起步依赖为案例,【验证:工程启动后会不会向ioc容器里面注入DispatcherServlet

第一步:准备一个干净的SpringBoot工程,不要引入任何依赖

依次展示:pom文件、yml文件以及工程里包结构,可以看到除了SpringBoot的核心依赖以外,该项目没有做任何其他配置

image-20240118235728269

第二步:验证没有引入web依赖后的IOC容器里是不是存在DispatcherServlet这个Bean
@SpringBootApplication
public class Sb3AutoConfigApplication {
   
   
     public static void main(String[] args) {
   
   
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

尽欢Sir

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

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

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

打赏作者

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

抵扣说明:

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

余额充值