• springboot总结


    SPI: service provider interface 服务发现,从配置文件发现服务
    SPI的核心思想: 服务的动态提供
    目的: 加载一个外部文件,加载第三方jar。外部文件是无限扩展的。

    spring boot通过SPI加载配置文件(META-INF/spring.factories,文件里面的内容 key:value)的方式,把类加载到spring容器完成实例化
    tomcat的SPI: META-INF/services/javax.servlet.ServletContainerInitalizer

    spintboot:
    1. springboot的启动
    AnnotationConfigServletWebServerApplicationContext
    1.1 spring容器的启动: 调用了核心方法refresh()
    1.2 内置Tomcat的启动和部署: 钩子方法onRefresh:

    2.springboot的自动配置
    目的: 第三方包不能扫描到;常用功能AOP, MVC, Cache...自动加进来
    实现技术: SPI

    @EnableAutoConfiguration
    1. SPI 类的收集
    Import AutoConfigurationImportSelector:
    process(): 收集META-INF/spring.factories里key为@EnableAutoConfiguration的所有value的类
    selectImpport(): 过滤,排序
    2. ConfigurationClassPostProcessor 类只是把收集到的类变成beanDefinition
    并加入到spring 容器

    3.自定义starter
    1. 有一个自动配置的工程: 一般都是公用功能的封装 META-INF/spring.factories
    2. pom工程: 负责去导入公用功能的工程

  • 相关阅读:
    006 date find
    005 输出重定向 > >>命令 echo命令 tail命令
    总结,一周,
    mokey 学习
    树状,
    定制,
    萌芽,
    到底为什么,
    会,
    “恋爱”,一路走来,
  • 原文地址:https://www.cnblogs.com/skorzeny/p/15648724.html
Copyright © 2020-2023  润新知