controller層和service層的作用

2022-08-03 03:09:10 字數 794 閱讀 1882

1.在controller和service裡都寫那些**?

controller,從字面上理解是控制器,所以它是負責業務排程的,所以在這一層應寫一些業務的排程**,而具體的業務處理應放在service中去寫,而且service不單純是對於dao的增刪改查的呼叫,service是業務層,所以應該更切近於具體業務功能要求,所以在這一層,乙個方法所體現的是乙個可以對外提供的功能,比如購物**中的生成訂單方法,這裡面就不簡單是增加個訂單記錄那麼簡單,我們需要查詢庫存,核對商品等一系列實際業務邏輯的處理;

2.在整個專案中什麼時候加異常?異常怎麼處理?

說到異常,我們應該回想下我們學習異常這一模組時,異常到底是什麼有什麼用?一直以來都覺得如果**出現了異常是件讓我悲傷的事,因為它意味著我**寫錯了,但是現在回想最初的認識都覺得有點好笑,"人,孰能無過",我所理解的異常只是我自己認為造成的錯誤,但殊不知實際中的異常情況是很多的,除了自身造成問題之外,伺服器down了,或者資料狀態發生改變,甚至斷網都可能造成異常,所以從另一方面,異常是服務於我們的,是為了我們更好的發現問題解決問題而存在的,在這裡,真的由衷的敬佩創造異常機制的前輩,他們過人的智慧型真讓人望塵莫及~

回到話題上,那麼實際中我們該怎麼做呢?個人覺得我們應該從底層的dao一直到action,應對每一層的**進行基本的try-catch,有時根據業務需求可能要進行多個catch,由上至下依次捕獲從小到大的各種異常,一般對底層的異常應該往出拋,目的是要通知上一層也就是呼叫者出現了什麼問題,但是對於和使用者直接互動的前台讓使用者看到後台的這些異常資訊可是不妥的,所以我們需要將異常資訊轉換常用的友好提示給使用者,而對於異常資訊應記錄到日誌以便對問題進行分析解決。

Controller層方法傳參和返回字串

1 controller層方法傳參 在上圖的方法中,需要呼叫這個方法的話,那麼a引數是必傳的,b和c無所謂傳不傳,甚至是你傳乙個方法中沒有的引數d也是可以正常呼叫該方法的。總之是有類似上面的註解 requestparam的引數必傳,其餘的看邏輯需求 一般邏輯寫了引數的,那麼都會傳參,不會出現很奇怪的...

controller層的單元測試

base的測試類,其他所有測試類繼承這個類 import org.junit.before import org.junit.test import org.junit.runner.runwith import org.springframework.beans.factory.annotatio...

Controller層返回json的格式

ajax3 responsebody public list ajaxtest3 假如集合裡面存的不是物件,而是基本資料型別如下 ajax3 3 responsebody public list ajaxtest3 3 當我返回乙個字串時 value ajax4 produces text html...