关于service dao(mapper) controller之间互相调用的问题

请问一下,service层 主要做业务逻辑,dao层sql语句,
那么现在我有个业务场景我删除的时候要删除我同事的表,我同事删除我的表
我同事删除的时候改我的表,
那么问题来了我service注入了我同事的service ,我同事的service注入了我的service,
导致了一个循环注入的情况请问如何解决,我试过 单独@autowired注入不会有问题,构造函数注入会有问题,
还有一点就是service 调用service是否违反了三层架构的设计。是否service只允许调用dao,但是如果service 只调用dao,难道要我把我同事的业务代码拷贝过来吗?

阅读 8.9k
1 个回答

同一个层次之间调用是可以的,一个类A调用另一个类B,就是A依赖B,依赖最好是单向依赖,不要双向依赖,A和B可以同是service层上的类,但不要双向依赖,不要A调用B,B也调用A,双向依赖耦合度太高,根据高内聚松耦合原则,如果A和B双向依赖,应该把A,B两个类或者服务合并成一个。

单从删除记录的处理来说,只有组合关系的实体删除的时候,才会级联删除其子实体,不可能有两个实体删除时会互相删除对方,这看起来像是关联关系的实体也级联删除。级联删除可以写在dao层上。

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