自定义starters
starters 原理、自定义 starters
starte:
- 这个场景需要使用到的依赖是什么?
- 如何编写子自动配置
@Configuration 指定这个类是一个配置类 @ConditionalOnXxx 在指定天降成立的情况下自动配置类生效 @AutoConfigureAfter 指定自动配置的顺序 @Bean 给容器中添加组件 @ConfigurationPropertie 结合相关XxxProperties生效加入到容器中 @EnableConfigutrationProperties 让 XxxPropertes生效加入到容器中 自动配置类要加载 将需要启动就要加载的自动配置类,配置在 META-INF/spring.factories org.springframework.context.ApplicationContextInitializer=\ com.cainiao100.springboot.listener.HelloApplicationContextInitializer org.springframework.boot.SpringApplicationRunListener=\ com.cainiao100.springboot.listener.HelloSpringApplicationRunListener
一、自定义starters
•自动装配Bean;
–自动装配使用配置类(@Configuration)结合Spring4 提供的条件判断注解@Conditional及Spring Boot的派生注解如@ConditionOnClass完成;
•配置自动装配Bean;
–将标注@Configuration的自动配置类,放在classpath下META-INF/spring.factories文件中,如:
自动装配顺序
–在特定自动装配Class之前
•@AutoConfigureBefore
–在特定自动装配Class之后
•@AutoConfigureAfter
–指定顺序
•@AutoConfigureOrder
二、启动器(starter)
- 启动器模块是一个空JAR 文件,仅提供辅助性依赖管理,这些依赖可能用于自动装配或者其他类库
- 命名规约:
推荐使用以下命名规约;
官方命名空间- 前缀:“spring-boot-starter-”
- 模式:spring-boot-starter-模块名
- 举例:spring-boot-starter-web、spring-boot-starter-actuator、spring-boot-starter-jdbc
自定义命名空间 - 后缀:“-spring-boot-starter”
- 模式:模块-spring-boot-starter
- 举例:mybatis-spring-boot-starter