關(guān)于Controller層和Service層的類報(bào)錯(cuò)問題及解決方案
Controller層和Service層的類報(bào)錯(cuò)
當(dāng)出現(xiàn)以下這種情況的時(shí)候,可以看看pom.xml文件中是否少了jar包。
當(dāng)我出現(xiàn)這種情況的時(shí)候,我去看pom.xml包發(fā)現(xiàn),如不其然我少了一個(gè)jar包
這就是我少了的那個(gè)jar包(spring-web),把這個(gè)加上之后就可以了。
<!-- 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,從字面上理解是控制器,所以它是負(fù)責(zé)業(yè)務(wù)調(diào)度的,所以在這一層應(yīng)寫一些業(yè)務(wù)的調(diào)度代碼,而具體的業(yè)務(wù)處理應(yīng)放在service中去寫,而且service不單純是對(duì)于dao的增刪改查的調(diào)用,service是業(yè)務(wù)層,所以應(yīng)該更切近于具體業(yè)務(wù)功能要求,所以在這一層,一個(gè)方法所體現(xiàn)的是一個(gè)可以對(duì)外提供的功能,比如購物商城中的生成訂單方法,這里面就不簡(jiǎn)單是增加個(gè)訂單記錄那么簡(jiǎn)單,我們需要查詢庫存,核對(duì)商品等一系列實(shí)際業(yè)務(wù)邏輯的處理;
2.在整個(gè)項(xiàng)目中什么時(shí)候加異常?異常怎么處理?
說到異常,我們應(yīng)該回想下我們學(xué)習(xí)異常這一模塊時(shí),異常到底是什么有什么用?一直以來都覺得如果代碼出現(xiàn)了異常是件讓我悲傷的事,因?yàn)樗馕吨夷睦飳戝e(cuò)了,但是現(xiàn)在回想最初的認(rèn)識(shí)都覺得有點(diǎn)好笑,"人,孰能無過",我所理解的異常只是我自己認(rèn)為造成的錯(cuò)誤,但殊不知實(shí)際中的異常情況是很多的,除了自身造成問題之外,服務(wù)器down了,或者數(shù)據(jù)狀態(tài)發(fā)生改變,甚至斷網(wǎng)都可能造成異常,所以從另一方面,異常是服務(wù)于我們的,是為了我們更好的發(fā)現(xiàn)問題解決問題而存在的,在這里,真的由衷的敬佩創(chuàng)造異常機(jī)制的前輩,他們過人的智慧真讓人望塵莫及~
回到話題上,那么實(shí)際中我們?cè)撛趺醋瞿兀?/strong>
個(gè)人覺得我們應(yīng)該從底層的dao一直到action,應(yīng)對(duì)每一層的代碼進(jìn)行基本的try-catch,有時(shí)根據(jù)業(yè)務(wù)需求可能要進(jìn)行多個(gè)catch,由上至下依次捕獲從小到大的各種異常,一般對(duì)底層的異常應(yīng)該往出拋,目的是要通知上一層也就是調(diào)用者出現(xiàn)了什么問題,但是對(duì)于和用戶直接交互的前臺(tái)讓用戶看到后臺(tái)的這些異常信息可是不妥的,所以我們需要將異常信息轉(zhuǎn)換常用的友好提示給用戶,而對(duì)于異常信息應(yīng)記錄到日志以便對(duì)問題進(jìn)行分析解決。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot中關(guān)于classpath:路徑使用及說明
這篇文章主要介紹了springboot中關(guān)于classpath:路徑使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09Java實(shí)現(xiàn)企業(yè)微信回調(diào)配置的詳細(xì)步驟與測(cè)試
這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)企業(yè)微信回調(diào)配置的詳細(xì)步驟與測(cè)試,企業(yè)微信回調(diào)是指企業(yè)微信通過HTTP?POST請(qǐng)求將業(yè)務(wù)數(shù)據(jù)回調(diào)到指定的URL上,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2023-09-09java基礎(chǔ)教程之拼圖游戲的實(shí)現(xiàn)
拼圖游戲大家應(yīng)該都玩過,下面這篇文章主要給大家介紹了關(guān)于java基礎(chǔ)教程之拼圖游戲的實(shí)現(xiàn)方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01Maven 版本管理與 flatten-maven-plugin 插件的使用解析
這篇文章主要介紹了Maven 版本管理與 flatten-maven-plugin 插件的使用解析,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07SpringBoot、mybatis返回樹結(jié)構(gòu)的數(shù)據(jù)實(shí)現(xiàn)
本文主要介紹了SpringBoot、mybatis返回樹結(jié)構(gòu)的數(shù)據(jù)實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04