框架基础之SPI机制

1 定义 SPI 的全名为 Service Provider Interface ,用于接口寻找服务实现类 实现方式 >标准制定者制定接口 不同厂商编写针对于该接口的实现类,并在jar的“classpath:META-INF/services/全接口名称”文件中指定相应的实现类全类名 开发者直接引入相应的jar,就可以实现为接口自动寻找实现类的功能 2 案例实现 比如我们经常看到的缓存类Cache,现在有非常多的缓存框架都会去实现这个接口 标准接口 public interface Cache { String getName(); <T> T get(Object key, Class<T> type); void put(Object key, Object value); void evict(Object key); void clear(); } 厂商的具体接口实现 public class ConcurrentMapCache implements Cache { private final String name; private final ConcurrentMap<Object, Object> store; public ConcurrentMapCache() { this("defaultMapCache"); } public ConcurrentMapCache(String name) { this(name, new ConcurrentHashMap<>(256), true); } public ConcurrentMapCache(String name, ConcurrentMap<Object, Object> store, boolean allowNullValues) { this.