官方文档地址:创建一个自定义的starter
1.场景
springboot程序启动后,启动自定义的starter。这个starter可能是包含一些需要注入容器的类,也可能是启动某些方法。
2.解决
首先要了解springboot的starter启动的时候,会自动注入spring.factories文件里面的类,这个需要去了解一下启动类的run源码。根据前面这个前提,将需要注入容器的类添加到spring.factories文件即可。如果是启动的方法,就是在类里面执行某些方法即可。
#spring.factories文件内容
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.xxx.XxxAutoConfiguration
//将这个扫描类放在最外层,可扫描所有注入的类
@ComponentScan
public class XxxAutoConfiguration {
}
3.结论
因为已经有了很多自动注入的注解,所以直接在项目里面注入也是可以有starter一样的效果。写starter的好处是抽出基础模块,需要使用的时候,直接依赖即可。
<dependency>
<groupId>com.xxx</groupId>
<artifactId>xxx-spring-boot-starter</artifactId>
</dependency>