回覆列表
  • 1 # 使用者4637298519382

    建議保留Service層,去掉service層會遇到很多問題的。

    在SSH架構裡,DAO是負責資料庫的增刪改查操作,是直接對應於資料庫,每個函式都是一個簡單的hql語句,不包含任何業務邏輯。

    Service是用來編寫業務邏輯的和事物控制的,一個業務邏輯可能會會呼叫多個DAO類中的函式,比如在知乎釋出一個回答,要先在資料庫中插入這條回答,然後還要更新答主回答問題的數目等等,要進行多次資料庫操作,而且事物控制也是放在這一層的。

    Action則是接收前臺資訊並呼叫相關Service並返回結果。

    如果把Service去掉,事務控制就比較麻煩,一個事務有多個數據庫操作,要求異常時都回滾,這樣就必須包一層,action和DAO層顯然不適合,所以要有Service層來做這件事情,而且在Service層使用spring註解事務真的很方便;其次,一個業務邏輯可能被多個Action呼叫,如果要單獨一個Service層這樣有利於程式碼重用和後期的維護,比如某個邏輯變了你只需改這個Service函式即可,而如果寫在Action裡面那你就一個個找吧,多麻煩。

  • 中秋節和大豐收的關聯?
  • 朋友結婚需要送哪些花?