参见牛逼大佬的博客,向大佬学习
Java SPI机制:
当服务的提供者,提供了服务接口的一种实现之后,在jar包的META-INF/services/目录里同时创建一个以服务接口命名的文件。该文件里就是实现该服务接口的具体实现类。而当外部程序装配这个模块的时候,就能通过该jar包META-INF/services/里的配置文件找到具体的实现类名,并装载实例化,完成模块的注入。通过这个约定,就不需要把服务放在代码中了,通过模块被装配的时候就可以发现服务类了。
定义核心接口
定义接口实现配置文件resources\META-INF\services\接口全路径
类加载机制:双亲委派机制、双亲委派缺陷、上下文加载器
Spring中SPI机制