關於Controller層和Service層的類報錯問題及解決方案

Controller層和Service層的類報錯

當出現以下這種情況的時候,可以看看pom.xml文件中是否少瞭jar包。

當我出現這種情況的時候,我去看pom.xml包發現,如不其然我少瞭一個jar包

這就是我少瞭的那個jar包(spring-web),把這個加上之後就可以瞭。

<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>4.3.18.RELEASE</version>
		</dependency>

Controller層和Service層的作用

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

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

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

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

回到話題上,那麼實際中我們該怎麼做呢?

個人覺得我們應該從底層的dao一直到action,應對每一層的代碼進行基本的try-catch,有時根據業務需求可能要進行多個catch,由上至下依次捕獲從小到大的各種異常,一般對底層的異常應該往出拋,目的是要通知上一層也就是調用者出現瞭什麼問題,但是對於和用戶直接交互的前臺讓用戶看到後臺的這些異常信息可是不妥的,所以我們需要將異常信息轉換常用的友好提示給用戶,而對於異常信息應記錄到日志以便對問題進行分析解決。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: