07 谈谈springboot的SPI机制

vvEcho 2025-03-02 15:04:33
Categories: Tags:

spring Boot的SPI机制通过META-INF/spring.factories文件和SpringFactoriesLoader实现了比 Java SPI 更强大的扩展能力,成为其自动配置与生态集成的核心技术。
开发者可通过自定义 Starter 和扩展点,灵活构建高内聚、低耦合的模块化系统

服务注册
Spring Boot 的 SPI 机制通过 META-INF/spring.factories 文件实现服务注册,该文件以键值对形式定义接口与其实现类的映射关系

1
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.MyAutoConfiguration

服务发现
Spring Boot 通过 SpringFactoriesLoader类实现服务发现,其核心步骤如下:
扫描文件:遍历所有 META-INF/spring.factories 文件。
解析配置:将键(接口或抽象类全限定名)与值(实现类全限定名列表)映射到内存。
动态加载:根据需求(如自动配置)通过反射实例化类,并注册到 Spring 容器中