文章目录

  • 介绍
    • @Import注解
    • SPI扩展机制
    • spring.factories文件
  • 总结

介绍

SpringBoot中,如果想把容器注册在Spring中,那么路径必须在SpringBootApplication启动类包的根路径下,没有的话,也有2种方式进行注册:

  1. 使用@Import注解引入;
  2. 使用spring.factories文件;

@Import注解

@SpringBootApplication
@Import(ServiceB.class) // 通过@Import注解把ServiceB添加到IOC容器里面去
public class MyBatisApplication {public static void main(String[] args) {SpringApplication.run(MyBatisApplication.class, args);}}

SPI扩展机制

在介绍spring.factories之前,先贴一下SPI 的定义:

  • SPI 的全名为 Service Provider Interface 大多数开发人员可能不熟悉,因为这个是是针对厂商或者插件的。在java.util.ServiceLoader 的文档里有比较详细的介绍;

spring.factories文件

SpringBoot 中也有一种类似SPI的加载机制,路径位于jar包中的META-INF/spring.factories,数据为key=value格式存储,类似于下面这种,作用就是为了将指定类,注入到Bean中;

# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.apache.cxf.spring.boot.autoconfigure.CxfAutoConfiguration,\
org.apache.cxf.spring.boot.autoconfigure.openapi.OpenApiAutoConfiguration,\
org.apache.cxf.spring.boot.autoconfigure.micrometer.MicrometerMetricsAutoConfiguration

总结

  • 如果在项目中,你想把某个类加载到Spring中,那么可以使用@Compont注解进行加载;
  • 但如果是要加载一个独立jar包中的类,就需要使用sprig.factories
  • spring.factories文件就是为了解决jar包中的类加载到容器中的,SpringBootSpringFactoriesLoader类中,以硬编码的方式指定了spring.factories这个路径,所以这个文件就是一个扩展点;
  • 后面阅读源码,你会发现好多地方都是从spring.factories文件入手;

一文读懂spring.factories作用相关推荐

  1. 一文读懂Spring动态配置多数据源---源码详细分析

    Spring动态多数据源源码分析及解读 一.为什么要研究Spring动态多数据源 代云小说网 https://www.3187.info ​ 期初,最开始的原因是:想将答题服务中发送主观题答题数据给批 ...

  2. 一文读懂Spring中的AOP机制

    一.前言 这一篇我们来说一下 Spring 中的 AOP 机制,为啥说完注解的原理然后又要说 AOP 机制呢? 1.标记日志打印的自定义注解 @Target({ElementType.METHOD}) ...

  3. 一文读懂Spring CLoud

    一.前言 只有光头才能变强 认识我的朋友可能都知道我这阵子去实习啦,去的公司说是用SpringCloud(但我觉得使用的力度并不大啊~~)- 所以,这篇主要来讲讲SpringCloud的一些基础的知识 ...

  4. 一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事

    微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物.互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,在这种情况 ...

  5. 4 年 46 个版本,一文读懂 Spring Cloud 发展历史

    作者 | 方剑 责编 | 唐小引 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) Spring Cloud 自 2016 年 1 月发布第一个 Angel.SR5 ...

  6. 干货|一文读懂 Spring Data Jpa!

    有很多读者留言希望松哥能好好聊聊 Spring Data Jpa!其实这个话题松哥以前零零散散的介绍过,在我的书里也有介绍过,但是在公众号中还没和大伙聊过,因此本文就和大家来仔细聊聊 Spring D ...

  7. 一文读懂Spring Cloud底层原理

    毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓.因此 ...

  8. 一文读懂spring boot 和微服务的关系

    欢迎访问网易云社区,了解更多网易技术产品运营经验. Spring Boot 和微服务没关系, Java 微服务治理框架普遍用的是 Spring Cloud. Spring Boot 产生的背景,是开发 ...

  9. 一文读懂 Spring的前世今生

    本文转载自公众号  编程新说 情景引入 很早之前,Java就火起来了,是因为它善于开发和处理网络方面的应用. Java有一个爱好,就是喜欢制定规范标准,但自己又不善于去实现. 反倒是一些服务提供商使用 ...

最新文章

  1. Eclipse+SVN搭建开发环境
  2. gdb工作原理(一)
  3. 设置Windbg符号文件路径
  4. illustrator下载_平面设计:16个Illustrator快捷方式可加快工作流程
  5. wchar_t 的输出问题
  6. 奖金(信息学奥赛一本通-T1352)
  7. DataGridView绑定对象数组 c# 1614236580
  8. 会话信息必须在服务器端,有关会话跟踪技术描述正确的是
  9. C# 使用 MemoryStream 将数据写入内存
  10. Lind.DDD.Aspects通过Plugins实现方法的动态拦截~Lind里的AOP
  11. CS231n-assignment1详解
  12. SAP中PR/PO创建技巧之缺省值个人设置
  13. svg图片调整大小和颜色
  14. 揭秘三位图灵奖得主Hinton、LeCun、Bengio的传奇人生
  15. python画八角星_Goc-N角星的绘制
  16. vue组件间通信六种方式
  17. Codeforces 940E: Cashback 单调队列优化DP
  18. 开源的前端GIS空间分析库介绍 (一)jsts与turf
  19. 第十周实验指导--任务3--先建立一个Point(点)类,再派生出一个Circle(圆)类,再派生出一个Cylinder(圆柱体)类...
  20. Tomcat启动项目警告: org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD

热门文章

  1. Github每日精选(第8期):rofi窗口切换器
  2. 低像素Bitmap圆形头像实现边缘锐化
  3. 蜡炬教育创始人 : 给员工充分的自由,他们可以做的更好
  4. C#中delegate详解
  5. 测试mSATA盘在linux下挂载时读写速度
  6. 数独求解算法_我如何回到一个老问题,终于写了一个数独求解算法
  7. secureCRT log file的设置
  8. Sicily 1750 运动会
  9. java学习案例--子父类模拟银行利息结算
  10. 面临恶意负面舆情,企业应该怎么应对和处理?