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


      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的配置项,下一节我们来分析自动配置的加载流程

  • 相关阅读:
    BigDecimal用法详解
    Spring IOC的配置使用
    Spring IOC容器基本原理
    Spring IOC基础
    Spring基础
    Spring概述
    win7+jdk环境变量配置
    订单状态
    项目经理与项目管理整理
    top命令按内存和cpu排序
  • 原文地址:https://www.cnblogs.com/warrior4236/p/13280755.html
Copyright © 2020-2023  润新知