新人第一次提问,感谢各位大佬
是我的一个练手项目,目前使用了 springBoot ,我拆分了一个系统模块,OA 模块
系统模块包含了基本的后台管理和用户授权那块,同时还包含了 springboot 的启动类
OA 模块包含了 OA 的审批功能等等。
1.我想知道这样做是否可行,会有其他坑嘛
2.是否为主流的解决方案
3.我想知道还有其他解决方案嘛
谢谢啦!
1
windyboy 2022-07-12 09:10:20 +08:00
关键字 exclude
|
2
ChenGangS OP @windyboy 排除不了的,因为系统模块必须引入 OA 模块才能加入到容器, 而 OA 模块又需要系统模块的一些服务, 这就导致两个模块互相需要
|
3
windyboy 2022-07-12 09:37:14 +08:00
|
4
jamel 2022-07-12 09:45:38 +08:00 1
把公用的提取出来,可以叫 api 、common 啥的。尽量少依赖于框架,尽量使用 spi 机制
|
5
VeryZero 2022-07-12 09:46:04 +08:00 1
感觉就不应该把 OA 和系统服务拆成多个 module 。如果 service 都要单独一个 module ,我个人感觉失去了多模块的意义。最终还是耦合在一起。
获取把启动类单独拆成一个 module ,这样可以让启动类依赖 OA 和系统服务,但是 OA 和系统服务不互相依赖。 |
6
jamel 2022-07-12 09:46:42 +08:00 1
如果是 spring 的话可以使用 spring.factories
|
7
carrie96 2022-07-12 10:17:43 +08:00
要不拆分成不同的服务?
|
8
ChenGangS OP @VeryZero 感谢,我按照你的方法把启动类拆成了单独的 module ,确实把启动类放在系统模块不太妥,因为我是参考开源项目 eladmin 的拆法,但我发现这个拆法后期新增模块都必须依赖这个系统模块,导致出现奇奇怪怪的问题。
|
9
alvinbone88 2022-07-12 10:43:11 +08:00 1
要拆的话应该把各种 api 拆出来作为各模块的依赖,api 的实现则由单独的模块提供
|
10
nothingistrue 2022-07-12 10:54:57 +08:00 1
简单得很(不简单),把 OA 依赖得用户授权也拆成独立模块。拆分从来都是业务拆分,不是物理位置拆分。你这个系统(含用户)、OA 的拆分导致业务双向依赖,是很不好的拆分。业务依赖方向应该是:应用程序,OA ,系统底层。其中只有应用程序是可启动的,后面的都是不可启动的库。
|
11
hhjswf 2022-07-12 11:11:18 +08:00
系统模块是基础模块,不应该去依赖上级模块呀
|
13
ChenGangS OP @alvinbone88 感谢,这个方式也不错,后期改造成微服务会更加简单,get !
|