开发SpringBoot架包
前面使用注解的方式使工具包供其他项目使用可见SpringBoot注解方式工具包,但是如果有多个工具包,那么我们就要在主项目上Application.class上有多个注解,非常的不美观,所以这篇文章使用非注解方式把工具包当作一个正常的jar使用。阅读本文章需要结合
SpringBoot注解方式工具包这篇文章才能看懂。
搭建工具包
- 直接删除
MySpringBootConfig
注解类。核心类只有AutoConfig.class
@EnableConfigurationProperties({MyProperties1.class,MyProperties2.class})
@ComponentScan({"com.demo.springboot.my.**"})
public class AutoConfig {
}
- 现在没有
@MySpringBootConfig
注解了,项目引入工具包又不会自动扫描,现在解决的思路是:- 使用spring的上下文自动配置
@EnableAutoConfiguration
,掩式的告诉spring要扫描我们架包扫描位置,然后通过spring.factories文件
来让项目启动时执行。 spring.factories文件
,是spring在启动时都会去每个架包中查找,如果有这个文件就执行加载,没有就跳过。
- 使用spring的上下文自动配置
- 新建
spring.factories
文件。- 在项目下
resources
文件夹下创建名为META-INF
的文件夹,然后再META-INF下创建spring.factories
文件。 - 在文件中加入
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.demo.springboot.config.AutoConfig
- 在项目下
- 上述工作完成后,就是告诉spring,
我有spring.factories文件,你读取我把,我有自动化配置类是:AutoConfig.class,你去帮我放到bean容器中,AutoConfig.class继续说你只装置我一个还不行,你要去把com.demo.springboot.my.包下所有的类都扫描了才算完事儿(**表示所有,具体这是什么网上很多)
测试
和上一篇文章的测试结果一样,所以如果搭建工具包建议使用这种方式,使用者最简单,不需要做更多注解