首页 > 编程语言 > 详细

springboot源码分析——SPI扩展机制

时间:2020-07-10 20:37:37      阅读:82      评论:0      收藏:0      [点我收藏+]

 

  springboot最重要的特性就是自动配置,许多功能不需要手动开启,会自动帮助程序员开启,如果想扩展某些

第三方组件的功能,例如mybatis,只需要配置依赖,就可以了,这其中都是需要SPI支持实现的,下面我们从源码

层面看看springboot如何通过spi机制实现自动配置的。

一:加载所有工程中META-INF/spring.factories文件中的配置

技术分享图片

 创建SpringApplication对象:

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 

技术分享图片

 

 

我们随便看一个工程的目录:spring-boot-autoconfigure 工程下META-INF 目录下的spring.factories文件的内容, 配置类似map  ,key为某一项,value为实现集合

技术分享图片

 

 

这就是Spi的加载机制,可以通过配置的方式实现和业务代码的解耦,需要增加时直接配置到文件内。

这一步是在容器启动的时候,加载所有的factoryname的值到缓存,包括自动配置的。

 

二:看一下自动配置是如何寻找并注册的

看一下这个注解@SpringBootApplication

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 

看一下这个类的内容:类里面有获取自动配置的方法getAutoConfigrationEntry

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 就是从上一步缓存result中查询所有的EnableAutoConfiguration的value集合,

这一节主要分析spi机制加载spring.factories的配置项,下一节我们来分析自动配置的加载流程

 

springboot源码分析——SPI扩展机制

原文:https://www.cnblogs.com/warrior4236/p/13280755.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!