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类和一个注解,用于动态标识哪些方法进行业务埋点操作,避免一定程度上的代码侵入。
相关推荐
Qiuner1 分钟前
Spring Boot 全局异常处理策略设计(一):异常不只是 try-catch
java·spring boot·后端
superman超哥4 分钟前
Rust 错误处理模式:Result、?运算符与 anyhow 的最佳实践
开发语言·后端·rust·运算符·anyhow·rust 错误处理
强子感冒了5 分钟前
Java List学习笔记:ArrayList与LinkedList的实现源码分析
java·笔记·学习
微爱帮监所写信寄信6 分钟前
微爱帮监狱寄信写信小程序PHP底层优化框架
java·开发语言·数据库·spring·微信·php·mybatis
MoonPointer-Byte6 分钟前
MoonReader:基于 SpringBoot 3.4 & React 的沉浸式协作阅读平台
spring boot·后端·react.js
琥珀.6 分钟前
查看linux下java服务进程是否正常
java·linux·运维
猫吻鱼8 分钟前
【项目实践09】【基于 Websocket 的同步请求调用】
spring boot·websocket
Coder_Boy_13 分钟前
基于SpringAI企业级智能教学考试平台核心模块协同总结与最佳实践方案
java·大数据·人工智能
崎岖Qiu14 分钟前
【设计模式笔记23】:长文解析-深刻理解「装饰器模式」
java·笔记·设计模式·装饰器模式
IT_陈寒14 分钟前
JavaScript性能优化:7个被低估的V8引擎技巧让你的代码提速50%
前端·人工智能·后端