只需4步,自己搞个 Spring Boot Starter !

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了只需4步,自己搞个 Spring Boot Starter !相关的知识,希望对你有一定的参考价值。

参考技术A 只要你用Springboot,一定会用到各种spring-boot-starter。其实写一个spring-boot-starter,仅需4步。下面我们就写一个starter,它将实现,在日志中打印方法执行时间。

在使用spring-boot-starter,会发现,有的项目名称是 XX-spring-boot-starter,有的是spring-boot-starter-XX,这个项目的名称有什么讲究呢?从springboot官方文档摘录如下:

从这段话可以看出spring-boot-starter命名的潜规则。
命名潜规则
spring-boot-starter-XX是springboot官方的starter
XX-spring-boot-starter是第三方扩展的starter
打印方法执行时间的功能,需要用到aop,咱们的项目就叫做 aspectlog-spring-boot-starter 吧。
项目的pom文件如下:

关于spring-boot-configuration-processor的说明,引自springBoot官方文档:

简单说就是:写starter时,在pom中配置spring-boot-autoconfigure-processor,在编译时会自动收集配置类的条件,写到一个 META-INF/spring-autoconfigure-metadata.properties 中。

本次我们就选用@ConditionalOnProperty。即配置文件中有aspectLog.enable=true,才加载我们的配置类。
下面开始写自动配置类

配置类简要说明:

当配置文件有 aspectLog.enable=true 时开启,如果配置文件没有设置 aspectLog.enable 也开启。

META-INF/spring.factories 是spring的工厂机制,在这个文件中定义的类,都会被自动加载。多个配置使用逗号分割,换行用\

如果有兴趣可以查看这2篇blog:
@Enable 驱动原理(设置连接)
@EnableAutoConfiguration 处理逻辑(设置连接)

这是我们最终的目录结构

在IDEA中,进行mvn intall

打包完成后,在其他项目中的pom中引入进行测试

以上是关于只需4步,自己搞个 Spring Boot Starter !的主要内容,如果未能解决你的问题,请参考以下文章

spring boot项目添加swagger 2.7.0(只需两步操作)

Intellij IDEA 搭建Spring Boot项目

如何掌握 Spring,Spring Boot 全家桶?系统学习 Spring 的大纲一份(实战教学)

Spring Boot 2.0:使用 Docker 部署 Spring Boot 开源软件云收

说自己熟悉 Spring Boot 这些面试题你会吗

153. MyBatis- pagehelper换为pagehelper-spring-boot-starter