从几篇博客中了解了如何自定义starter,大概分为以下几个步骤:
1 引入相关依赖;
2 生成属性配置类;
3 生成核心服务类;
4 生成自动化配置类;
5 注册配置/META-INF/spring.factories;
6 打包发布;
下面以一个简单的demo为例,一步一步说明自定义spring boot的starter的过程。
使用Slf4j的MDC实现一个工程中的链路追踪。通过设置open的属性代表是否打开链路追踪,从而为每一个请求生成一个traceId。当然理想是比较丰满的,实际操作如果要实现上述功能,要配合AOP/Filter/Interceptor这类工具,具体参考 文章。本文只是做个demo。
Demo比较简单,所以需要的依赖也不多,如下:
属性类一定要加@ConfigurationProperties注解,用于表示这个文件是一个属性类。
在注解@ConfigurationProperties后面可以添加prefix前缀,如果open属性要设置具体值,需要这样配置,lxl.mdc.open = true;
核心服务类的作用:根据properties中lxl.mdc.open的配置,控制是否生成sessionId,并将其put到MDC中。
@Configuration:标识此类为一个spring配置类
@EnableConfigurationProperties(MdcDemoProperties.class):启动配置文件,可以有多个,多个配置文件这样写:value={xxProperties1.class,xxProperteis2.class….}
@ConditionalOnClass
,当 classpath
下发现该类的情况下进行自动配置。
手动在resources文件下创建META-INF/spring.factories 文件,配置如下:org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.demo.spring.starter.mdc.MdcDemoServiceAutoConfiguration
多个类通过,分隔即可。
本地测试 可以通过 mvn install 打包命令打包成一个jar包,本地测试的话需要将mvn的settings文件的仓库改成本地地址,不然会出现找不到包的错误。
1 新建一个spring boot 工程
2 pom中引入mvn依赖
3 mvn依赖查看
4 配置application.properties
5 测试demo
6 测试输出
Original: https://www.cnblogs.com/xlli/p/10102518.html
Author: 梨小落是个小疯子
Title: 自定义spring boot starter 初尝试
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/608880/
转载文章受原作者版权保护。转载请注明原作者出处!