SpringBoot 自动装配摸索

SpringBoot 自动装配摸索

捡破烂的诗人 373 2022-07-10

1. 自动装配流程

  • 对于 SpringBoot 的自动装配流程,文字 + 代码截图太痛苦,下面直接一张图简单概况下

    自动装配流程

  • 其实个人总结而言,所谓的自动装配,其实是

    1. 对于常用的技术,按照一定的规则进行开发
    2. 这个所谓的规则就是这项技术要预留一个xxxAutoConfiguration的核心自动配置类
    3. 在这个自动配置类中包含了这项技术使用所需要的所有配置等,也就是这个自动配置类是这项技术使用的入口,开关
    4. 然后再把这个自动配置类的全路径类名作为value写进在META/INF目录下,一个叫spring.factories的文件里面,其key即为org.springframework.boot.autoconfigure.EnableAutoConfiguration
    5. 接着对于我们使用SpringBoot技术开发项目时,启动的时候会默认加载这个在META/INF目录下的spring.factories文件,然后默认加载其中的keyorg.springframework.boot.autoconfigure.EnableAutoConfigurationvalue值,也即注册所有写进来的类文件的实例对象,相当于加载其对应的技术
    6. 但是加载 bean 的时候可能需要一定的条件,所以实际上是有条件的选择性加载
    7. 所以,在项目中开发中我们能够使用某些我们从未手动加载过,但是Spring容器中却存在的 bean
  • 所以,在SpringBoot项目中为什么我们需要额外使用一项技术时(比如说Redis),只需要导入其对应的依赖以及做相关配置即可

  • 无非就是Redis按照规则开发完后,把启动入口的全路径类名写进META/INF下的spring.factories文件

  • 我们启动项目时,直接读取其值,加载进来,所以我们也就能使用Redis这项技术了

  • 其自定义starter规则如此简单,能够让开发者快速上手

  • 当然,SpringBoot使用起来越简单方便,其内部的封装也就也多


# Spring # SpringBoot # 自动装配