java 有自己的spi,dubbo也有自己的spi,Spring也有自己的spi,而springboot就用到了spirng的spi来实现自动装配。

我们用过springboot的都知道,在SpringBoot中我们需要添加任何一个配置类都只需要添加一个配置类,比如

@Configuration
public class SpiTestConfig {public SpiTestConfig() {System.out.println("test config init!");}
}

springboot 默认会给我们扫描Application及其子包里面的配置bean然后初始化
我们这里的项目结构为:

可以看到 SpiTestConfig和 Application不属于同包,所以在Springboot程序启动不会加载Bean SpiTestConfig
其实在我们使用Springboot多模块项目作配置可以能也会遇到这样的问题,想要让SpiTestConfig加载其实很简单。我们只需要在resource中添加一个文件夹META-INF,再添加配置文件spring.factories
内容如下

## 允许自动加载
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
config.SpiTestConfig

这样就可以做到自动加载配置类了(ps,仅仅依赖这一点肯定是不够的,但是我们这里只是分析这一点)。

其实我们在使用三方 spring-boot-starter就是使用这种机制,我们的Application显然不会和三方jar处于同包或者子包。三方Bean Configuration需要加载就需要使用spring 的spi机制。
我们可以随便看看
我们随便看看 springframework.boot.autoconfigure就可以看到配置了如此多的自动加载key

而加载的源码调用大致如下

这里的源码想要自己去深入研究的可以自己去debug

SpringBoot spi相关推荐

  1. 让你的SpringBoot更有个性, 定制酷炫Banner

    前言 在进行SpringCloud进行开发的时候,不知道朋友们有没有注意到你的SpringBoot微服务启动的时候的日志里会出现启动画面: 如下图所示 特别的酷炫有风格: 这个方式可以非常简单的通过S ...

  2. springboot 自动注入servlet原理

    前置内容: servlet的多种注册方式 SpringBoot启用 ServletContainerInitializer ServletContainerInitializer-SPI SPI部分内 ...

  3. 四种引用类型在Springboot中的使用

    今天 4ye 来和小伙伴们聊聊这个 强引用,软引用,弱引用,幻象引用(虚引用)啦???? 嘿嘿,主要是最近读源码的时候经常看到,然后又想到自己第一次知道这个神奇的东西是在 2020-8-21???? ...

  4. ShardingSphere笔记(一): 经验和踩坑总结

    ShardingSphere笔记(一): 使用经验总结 文章目录 ShardingSphere笔记(一): 使用经验总结 一.背景 框架选择 二.ShardingSphere-jdbc 只是一个帮助你 ...

  5. 将 Bean 放入 Spring 容器中的方式

    文章目录 将 Bean 放入 Spring 容器中的方式 1.@Configuration + @Bean 2.@Componet + @ComponentScan 3.@Import注解导入 3.1 ...

  6. apollo配置中心源码全解析

    文章目录 前言 源码解析 与springboot集成 远程配置的加载 长轮询监听配置更改 服务端长轮询机制 通过客户端发布配置 总结 前言 紧接前文nacos配置中心,本文继续讲目前比较火热的动态配置 ...

  7. dubbo源码学习总结

    前言 总结 内容主要包括dubbo 框架的spi 实现,服务暴露实现,服务调用实现,以及个人感觉里面比较好的设计分享.涉及的代码部分较多.主要是自己的主观理解,如有纰漏 可以随时指正. RPC rpc ...

  8. 【SpringBoot】SPI 与 spring.factories

    目录 什么是 SPI SPI 原理 Spring.factories 实现原理 应用 什么是 SPI 即 Service Provider Interface.是 JDK 内置的一种服务提供发现机制, ...

  9. SpringBoot应用篇之FactoryBean及代理实现SPI机制示例

    更多Spring文章,欢迎点击 一灰灰Blog-Spring专题 FactoryBean在Spring中算是一个比较有意思的存在了,虽然在日常的业务开发中,基本上不怎么会用到,但在某些场景下,如果用得 ...

最新文章

  1. box-cox数据规整转换
  2. 如何训练孩子上厕所(初级篇)
  3. 使用Spring Boot搭建你的第一个应用程序
  4. 【Microstation】第一章:Microstation三维模型构建概述
  5. 爬虫python 新闻,Python爬虫实例--爬取人民网新闻
  6. 微软 VS Code 或将取代 Visual Studio!
  7. 网页运行python脚本_python脚本和网页有何区别
  8. 基于智能电网的电力线载波通信研究
  9. python银行卡号识别_EAST+CRNN银行卡号识别,附数据集
  10. 对事件流的小故事理解
  11. 14岁考入清华,22岁博士四年级,杜克大学杨幻睿的AI成长之路
  12. 【JAVA】JSR、JCP是什么?
  13. Domino多瑙河EAP3以及Nomad Web 1.0.5
  14. kali liunx使用心得之命令行模式下如何配置连接无线网络
  15. snprintf() 函数
  16. javascript可以直接比较时间字符串的大小
  17. 【STM32】芯片自锁、No Cortex-M SW Device Found/HardFault_Handler无法下载等问题的解决办法
  18. 业务结构单一,天润云能借IPO说出好故事吗?
  19. android之cpu使用率
  20. 扩展欧几里德算法详解

热门文章

  1. DSP芯片在实时图像处理系统中的应用
  2. arm嵌入式led灯闪烁实验报告_嵌入式led灯亮灭实验报告
  3. Jzoj P5937 斩杀计划___枚举+贪心
  4. python判断素数的方法简书_判断素数
  5. 在python中使用ffmpeg实现mp4转wav
  6. 一定要牢记软件工程的铁律
  7. C++11中enable_shared_from_this的用法解析
  8. python游戏编程网课_Python 学习最佳方式_创建游戏_编程一个机器人
  9. 仙境传说 第一章之二 卢渊*冰雷魔法师
  10. 2021地理设计组一等奖:面向游客的旅游路线优化设计——以丹霞山景区为例