请教一下: Java Service 层应该注入其他的 service,还是 mapper,以及注入 service 可能循环依赖要怎么解决?

1 天前
 lifeOsDeveloper
648 次点击
所在节点    问与答
10 条回复
IamLostInCoding
22 小时 46 分钟前
lazy 一下?
Bronya
22 小时 46 分钟前
按道理来说不应该注入其他 Service ,真要注入的话用 @Lazy 解决。
hidemyself
22 小时 25 分钟前
Facade
fangxisama
22 小时 21 分钟前
一直都是注入 Service ,如果有循环依赖考虑一下你的方案,如果方案无法改就 @Lazy
ala2008
21 小时 56 分钟前
注入 Service 。如果实在嵌套了,考虑弄个 manger 统一管理
qiaofanxing
21 小时 53 分钟前
最常可能出现循环依赖的情况是 A 表、B 表、AB 关联表三个 Service ,可以规定原则,比如只能在 AB 关联表的 Service 中注入 A 和 B ,在 A 和 B 中禁止注入 AB 关联表的 Service ,既要用到 A 也要用到 B 的就写到 AB 关联表的 Service 里面。
Ayanokouji
21 小时 44 分钟前
可以使用 set 注入,但不能用 constructor 注入,最好不要这样做,一般是按#5 做法,搞个 manager 层
Vaspike
21 小时 12 分钟前
能注入 mapper 尽量注入 mapper, 单从效率角度也要这样;
循环依赖在大项目中很难解决的, 要么接受 spring 的循环依赖管理(1), 要么拆分为跨服务调用(2), 要么彻底优化这部分代码结构(3);
如果你问这个问题是想进步, 请使用第三个方案
如果你问这个问题只是怕代码跑不起来, 请使用第一个方案
superychen
21 小时 12 分钟前
尽量是不注入的,我一般都在 biz 层搞,service 层的能力尽量聚焦在它自己本身
wolfie
20 小时 40 分钟前
直接依赖 mapper ,如果用的 mybatis-plus 的 ServiceImpl ,在 service-mapper 之间增加一个 repository 层。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1103850

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX