明天虽然没有女朋友要陪,但是工作还是要做好的~,项目需要自定义Starter对新功能进行支持,虽然之前也做过,但是没有系统性分析其原理,所以这两天对Spring自定义Starter进行深入学习,做了以下笔记,提供给大家学习。
Springboot自定义Starters
关键点
-
编写pom文件,引入相关依赖
-
编写XXXAutoConfiguration类实现自动配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| @Configuration
@ConditionalOnXXX
@AutoConfigureAfter
@Bean
@ConfigurationProperties
@EnableConfigurationProperties
|
-
编写 META-INF/spring.factories
文件
1 2
| org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ xxx.xxx.XXXAutoConfiguration
|
-
模式:
- 启动器只用来做依赖导入
- 另外写一个自动配置模块,与启动器解耦
- 启动器依赖自动配置,使用时引入启动器
-
命名:
- 官方命名模式:
spring-boot-starter-xxx
- 自定义starter命名:
xxx-spring-boot-starter
自定义Starter流程
- 创建空项目
- 空项目中新增模块(Maven项目)作为启动starter
- 空项目中新增模块(Spring项目)作为自动配置starter
- 启动starter引入自动配置starter依赖
- 自动配置starter编写
- 新增xxxProperties配置类,与配置文件做绑定
- 编写starter实现的功能
- 编写xxxAutoConfiguration类进行自动配置,在里面把实现的功能注入IOC容器
- 编写
META-INF/spring.factories
文件,把xxxAutoConfiguration配置进去
- 打包,先打包自动配置starter,再打包启动starter