今天学完了SpringBoot的基础篇章,前面章节几乎都是引入Spring官网写好的starter,修改对应的配置文件,使用SpringBoot集成好的功能 。我就写一篇如何基于自己理解,使用STS+MAVEN开发工具创建自定义的SpringBoot Starter 记下这个时间节点。
创建一个自定义的starter,主要分为两步,创建一个自定义的启动器应用,创建一个自定义的自动配置类应用。
一.启动器(xx-starter)说明
启动器是一个空的jar文件,只用来标记其他应用在pom.xml 引入这个starter时的groupId、artifactId,没有任何实现逻辑。比如:我们打开常用的一个spring-boot-starter-web starter 可以看到目录结构,里面并无class实现。
二.自动配置类(xxautoconfiguration)说明
自动配置类主要新建一个自定义的class、class中使用属性与配置文件绑定、class组件自动注入。我们可以参考 SpringBoot web模块自动配置类
org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.class
几个关键注解说明:
@Configuration:声明这是一个配置类
@ConditionalOnWebApplication: ConditionalOnxxx 在某某条件下该配置生效
@AutoConfigureOrder :自动配置加载的顺序
@ConfigurationProperties:与properties配置文件绑定
@EnableConfigurationProperties :xxxProperties xxProperties配置生效并且加入到容器中