直接使用spring boot 的特性进行插件化业务开发

插件化的价值是比较大的,一个是可以复用业务基础,同时扩展开发也比较方便,可以在不动核心业务系统的基础上,进行新功能开发,实现系统的按需扩展,以下是一个简单的实践

参考玩法

如下图,原理很简单,一个spring 项目最大的问题就是如何找到service bean 以及如何进行配置管理,其他一些东西spring 实际已经很全了,下图的玩法核心是利用了spring boot 的外部jar 加载以及外部配置加载能力,同时为了进行插件开发是需要一个通用的服务契约方便进行共享,对于配置的玩法,方法很多,一个是可以直接使用标准的spring 配置玩法,一个是可以注入Environment 结合Binder 进行方便的处理

image

加载玩法,可以直接使用PropertiesLauncher,spring boot 构建插需要调整下为ZIP,然后就可以使用loader.path 指定开发的插件位置了,对于配置spring boot 是直接类似include 模式,可以通过spring.config.import 处理,服务的里边的配置注入方法比较多,一个是标准配置玩法,一个是Environment 注入同时结合Binder 进行方便的控制

缺陷: 当然缺陷也是很明显的,类加载的问题,spring bean 冲突的问题,实际实践需要有一个规范

说明

AI 时代,代码已经零成本了,但是好的设计依然还是有价值的,好的实践依然很重要,并不是ai coding 很强大了,我们就不需要设计了

参考资料

https://docs.spring.io/spring-boot/specification/executable-jar/property-launcher.html

https://docs.spring.io/spring-boot/reference/features/external-config.html

posted on 2026-10-16 08:00  荣锋亮  阅读(7)  评论(0)    收藏  举报

导航