SpringBoot多模块项目解耦策略研究
https://www.cnblogs.com/zwj/p/18703793/ai-java-20250208
您可以先阅读上面这篇AI生成的文章,下面是我在工作中的一些实践
已知
1 存在 模块TMS、ERP
2 ERP中引入了TMS的Maven依赖(也就是说 ERP 依赖 TMS)
3 要在TMS里面编写代码,但是涉及到了ERP的业务
解决方案:
TMS模块
- TmsController
- TmsService
TmsService里面存在多个方法,但是没有满足业务需求的,于是在TmsService里面写了一个方法AAA
但是AAA只返回null
接着,在ERP里面创建一个EepExtendsTmsService,继承 TmsService,同时添加注解@Primary
然后重写 AAA方法
@Primary 是 Spring 框架中的一个注解,用于在存在多个相同类型的 Bean 时,指定优先使用的 Bean。
这个时候,ERP的业务就还在ERP模块里面
而TMS模块,也能通过调用TMS模块的AAA方法,来满足需求
这个方案也就是最终提交的的版本
在这个方案之前,我是使用接口的方式实现的,如下:
1 在TMS创建Interface接口文件
2 在ERP里面实现这个接口文件