SPI
SPI(Service Provider Interface),是JDK内置的一种 服务提供发现机制,可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用
当服务的提供者提供了一种接口的实现之后,需要在classpath下的META-INF/services/目录里创建一个以服务接口命名的文件,这个文件里的内容就是这个接口的具体的实现类。当其他的程序需要这个服务的时候,就可以通过查找这个jar包(一般都是以jar包做依赖)的META-INF/services/中的配置文件,配置文件中有接口的具体实现类名,可以根据这个类名进行加载实例化,就可以使用该服务了。JDK中查找服务的实现的工具类是:java.util.ServiceLoader
缺点:
无法定制化,全加载,使用也是迭代形式获取
https://www.pdai.tech/md/java/advanced/java-advanced-spi.html
Spring Boot - 自定义Starter封装
在META-INF下创建spring.factory文件,需要@EnableAutoConfiguration配合使用
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ |
Properties->Configuration->Bean->AOP?