springboot maven父子工程项目框架该如何设计搭建?

对于多子系统的web架构,让后端每个系统能够独立部署且jar包能相互引用,就想到了用maven父子工程,其架构该如何设计,接口之间的调用该如何封装,有没有好的建议
是否可以按controller、service、dao,csd这套来拆分,对应系统的csd逐级依赖,然后加上各个系统的主包system-c系统、system-l系统这样的,像spring boot启动项就放在对应系统主包下面,每一个都是maven子工程,每个csd子工程下面都包含对应的common公共包和对应子系统,如下图,是否还有其它补充,跨系统之间的接口调用如何维护
image.png

阅读 588
1 个回答

没必要拆的太细,跨系统之间的接口调用
1.使用HTTP, 你的模块可以提供类似于Feignclient即可,包含出入参的序列化和反序列化,由于是HTTP,各种语言之间调用也很便捷,甚至可以不共享模块

2.使用RPC,常见的是Dubbo, SOFA-RPC等,也是需要提供接口和出入参对象

一般情况下,划分模块都是统一parent模块,一个core模块,一个Facade模块,这三个是各个系统共享的,其他的都是各系统独立的,公共的出入参对象和RPC/HTTP封装,全部放Facade模块就可以。

要想达到系统极简,抽象合理,还是要在包管理上下功夫
1.父模块统一管理依赖版本
2.共享模块不传递三方依赖,依赖可选化
3.模块依赖最小化,不用则不引入,优先考虑标准包,例如: 使用commons工具里,而不是Spring的工具类,使用Java SE的注解,而不是Spring的注解,暴露模块@Autowire@Inject替换等

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题