springboot starter原理

简单描述是这样

对于封装好的starter或者自定义的starter来说,starter都可以看做是个jar包组,引入对应所需的jar包,但这时候的问题是只是引入了jar包,那么是怎么注册进ioc容器的?就是依靠springboot的自动配置原理,会扫描所有starter包下的 meta-inf包里面的spring.factories的自动配置key下的所有类。

所以如果是自定义sdk的话 也要在自定义的sdk里面配置factories文件的值。

———————————————————————————

starter 与自动装配

starter 依赖只会帮我们引入对应功能的 jar 包,而没有主动将 bean 注册到 IOC 容器中(甚至连 class 文件都没有)。那 springboot 是怎么做到“开箱即用”的呢?这就与springboot 的 AutoConfiguration 也就是自动装配有关系了,关于自动装配的内容在我的另一篇博文《SpringBoot系列之启动流程3-自动装配与@SpringBootApplication注解》中有详细介绍。简单来说就是 springboot 在 classpath 下搜索所有 jar 包中的 spring.factories文件,将其汇总为将要注册进IOC 容器中的 bean 蓝本。

加载完这些蓝本类之后,不是直接注册进 IOC 容器中,因为直接注册的话太多了,光是注册可能就要花很久,况且有些 bean 我这个应用可能根本用不到呢,那我就白花那么长时间启动了。所以springboot还要借助条件装配,看一下是否满足条件,满足的话才会进行相应功能的自动装配,将相应的bean 注册进 IOC 容器,否则忽略该自动装配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值