在之前的项目中遇到了一个问题就是,将通用的一些部分抽取出来做成了单独的模块,但是如果要在其他的模块中使用的话至少要在扫描路径中加上这个模块相应要被扫描的class所在的包路径,无法完全的解耦;后来了解了Spring Boot的扩展机制Spring Factories很好的解决了这个问题;方式:在META-INF/spring.factories文件中配置接口的实现类名称,然后在程序中读取这些配置文件并实例化
例子:将microservicecloud-base模块通过spring.factories的EnableAutoConfiguration的方式加载配置,这样在使用这个jar包的项目中就不用了手动的指定要扫描这些配置文件所在的路径了(毕竟好多时候这个jar包是会给别人用的,难不成还要告诉别人:“兄弟,你要用我的jar包,别忘了添加xxx.xxx.xxx的扫描路径,那就搞笑了”)