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类和一个注解,用于动态标识哪些方法进行业务埋点操作,避免一定程度上的代码侵入。
相关推荐
李慕婉学姐9 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
奋进的芋圆11 小时前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
sxlishaobin11 小时前
设计模式之桥接模式
java·设计模式·桥接模式
model200511 小时前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端
武藤一雄11 小时前
C# 关于多线程如何实现需要注意的问题(持续更新)
windows·后端·microsoft·c#·.net·.netcore·死锁
荒诞硬汉11 小时前
JavaBean相关补充
java·开发语言
提笔忘字的帝国12 小时前
【教程】macOS 如何完全卸载 Java 开发环境
java·开发语言·macos
2501_9418824812 小时前
从灰度发布到流量切分的互联网工程语法控制与多语言实现实践思路随笔分享
java·开发语言
華勳全栈12 小时前
两天开发完成智能体平台
java·spring·go
程序新视界12 小时前
为什么不建议基于Multi-Agent来构建Agent工程?
人工智能·后端·agent