spring boot starter

文章目录

针对一个用户行为分析埋点平台的Java SDK进行封装,开发出一个Spring Boot Starter组件

为什么要对SDK封装开发starter?

  1. 集成不方便,配置不灵活:GrowingIO没有starter组件,集成起来不方便,并且需要自定义properties文件,无法在微服务架构下比较容易的与配置中心集成
  2. SDK升级带来的代码问题:sdk版本升级,和业务代码耦合,可能仍需改动,所以需要进行二次封装,采用灵活的starter的方式。
  3. 使用不友好,使用原始SDK API:值得提供简单且友好的API方便调用,屏蔽原生的java SDK API实现,

Spring Boot Starter怎么封装

  • 第1步:定义一个XXXProperties的类文件,用于抽象化原有的配置属性与增加新的属性。
  • 第2步:将核心的业务处理类,初始化核心业务处理类并注入到IOC中,通常写在XXXAutoConfiguration的类文件文件中。
  • 第3步:为了防止使用者与Starter中包名路径不一致,声明一个spring.factories的文件,来提供一种扫描类到IOC中的途径。
  • 定义一个XXXXEnable模式+@Import模式的注解,用于控制Starter是否生效与动态注册对象Bean到IOC容器中。
  • 使用很多注解,来区分当前starter组件中的先后顺序、环境区分、兼容性等等。
  • 自定义一个AOP类和一个注解,用于动态标识哪些方法进行业务埋点操作,避免一定程度上的代码侵入。
相关推荐
com未来5 分钟前
使用 NSSM 安装 Tomcat 11.0.6 为 Windows 服务
java·windows·tomcat
TDengine (老段)10 分钟前
基于 TSBS 标准数据集下 TimescaleDB、InfluxDB 与 TDengine 性能对比测试报告
java·大数据·开发语言·数据库·时序数据库·tdengine·iotdb
养军博客12 分钟前
spring boot3.0自定义校验注解:文章状态校验示例
java·前端·spring boot
lgily-122513 分钟前
常用的设计模式详解
java·后端·python·设计模式
IT成长史19 分钟前
deepseek梳理java高级开发工程师微服务面试题
java·微服务
茶本无香19 分钟前
Feign+Resilience4j实现微服务熔断机制:原理与实战
java·微服务·feignclient·熔断·resilience4j
遇见火星20 分钟前
Ansible模块——从控制节点向目标主机复制文件!
java·服务器·ansible
小码ssim22 分钟前
通过POI实现对word基于书签的内容替换、删除、插入
java·word
香饽饽~、36 分钟前
函数式方法的实现(JDK8+)
java·服务器
付朝鲜1 小时前
用自写的jQuery库+Ajax实现了省市联动
java·前端·javascript·ajax·jquery