1.springboot的starter原理浅谈
- 启动类中的默认注解
@SpringBootApplication
是一个复合注解,其中它包含的两个比较重要的注解:@ComponentScan、
@
EnableAutoConfiguration
@ComponentScan
默认的扫描路径就是启动类所在的路径。@
EnableAutoConfiguration
通过@Import注解 + 实现ImportSelector 接口的方式向IOC容器里注入Bean。- springboot通过
@
EnableAutoConfiguration
注解,实现classpath中搜寻所有的META-INF/spring.factories配置文件
2.怎么自定义一个starter
- 创建一个springboot项目,命名如下:
官方模块:spring-boot-starter-模块名
自定义模块:模块名-spring-boot-starter - 你需要在资源目录
resources
下建立一个 META-INF 目录,并在该目录下建立一个 spring.factories 文件,在文件里指定你要被IOC容器管理的配置类的全额限定名
就可以了 - 修改pom.xml(不要
<build>
等maven插件,否则打包时会认为是web项目、并且找不到主启动类而报错等问题) - 删除自动新建的springboot启动类
- 将XXX-starter打包发布到maven仓库
- 简单起一个项目并引入starter的maven坐标
参考
https://blog.youkuaiyun.com/Dongguabai/article/details/80865599
https://blog.youkuaiyun.com/nrsc272420199/article/details/106746381
https://www.cnblogs.com/niechen/p/9027804.html