关于service的相互调用的问题
前言:
这两天写着写着突然想到了一个东西,就是之前犯过的一个错误,service层的相互调用的问题,循环依赖导致报错的问题;
问题:
service层 主要做业务逻辑,dao层sql语句,
那么现在我有个业务场景我删除的时候要删除我同事的表,我同事删除我的表
我同事删除的时候改我的表,
那么问题来了我service注入了我同事的service ,我同事的service注入了我的service,
导致了一个循环注入的情况请问如何解决,我试过 单独@autowired注入不会有问题,构造函数注入会有问题,
还有一点就是service 调用service是否违反了三层架构的设计。是否service只允许调用dao,但是如果service 只调用dao,难道要我把我同事的业务代码拷贝过来吗?
这说明你的表和你同事的表有紧密的关系,根据高内聚原则,应该对这两个表的业务操作单独抽取出来作为一个service,
包括你的service一部分代码,和你同事的service一部分代码,新的service作为一个相对低层的service,
你们的service调用新service,改双向依赖为单向依赖,提高内聚降低耦合。
总结:
service可以调用service,做到单项调用,避免双向调用
标签:
java后端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律