關於service的相互調用的問題


關於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,做到單項調用,避免雙向調用




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM