国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解

這篇具有很好參考價(jià)值的文章主要介紹了SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一,JSON數(shù)據(jù)返回的理解

? ? ?在Spring MVC中,當(dāng)需要將數(shù)據(jù)以JSON格式返回給客戶端時(shí),可以使用@ResponseBody注解或@RestController注解將Controller方法的返回值直接轉(zhuǎn)化為JSON格式并返回。這使得開(kāi)發(fā)者可以方便地將Java對(duì)象轉(zhuǎn)換為JSON,并通過(guò)HTTP響應(yīng)返回給客戶端。Spring MVC框架會(huì)自動(dòng)地處理這一轉(zhuǎn)換過(guò)程,將對(duì)象序列化為JSON字符串。這種方式適用于RESTful API的實(shí)現(xiàn)

1.2 Jackson

1.2.1 介紹

? ? Jackson是一個(gè)簡(jiǎn)單基于Java應(yīng)用庫(kù),Jackson可以輕松的將Java對(duì)象轉(zhuǎn)換成json對(duì)象和xml文檔,同樣也可以將json、xml轉(zhuǎn)換成Java對(duì)象。Jackson所依賴的jar包較少,簡(jiǎn)單易用并且性能也要相對(duì)高些,并且Jackson社區(qū)相對(duì)比較活躍,更新速度也比較快

1.2.2?特點(diǎn)

  • 容易使用,提供了高層次外觀,簡(jiǎn)化常用的用例。

  • 無(wú)需創(chuàng)建映射,API提供了默認(rèn)的映射大部分對(duì)象序列化。

  • 性能高,快速,低內(nèi)存占用

  • 創(chuàng)建干凈的json

  • 不依賴其他庫(kù)

  • 代碼開(kāi)源

1.2.3.常用注解

注解 說(shuō)明
@JsonIgnore 作用在字段或方法上,用來(lái)完全忽略被注解的字段和方法對(duì)應(yīng)的屬性
@JsonProperty 作用在字段或方法上,用來(lái)對(duì)屬性的序列化/反序列化,可以用來(lái)避免遺漏屬性,同時(shí)提供對(duì)屬性名稱重命名
@JsonIgnoreProperties 作用在類上,用來(lái)說(shuō)明有些屬性在序列化/反序列化時(shí)需要忽略掉
@JsonUnwrapped 作用在屬性字段或方法上,用來(lái)將子JSON對(duì)象的屬性添加到封閉的JSON對(duì)象
@JsonFormat

指定序列化日期/時(shí)間值時(shí)的格式

二,JSON入門的使用

2.1 導(dǎo)入pom.xml依賴

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.3</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.3</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.3</version>
</dependency> 

?2.2 配置spring-mvc.xml

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
        <list>
        	<ref bean="mappingJackson2HttpMessageConverter"/>
        </list>
    </property>
</bean>
<bean id="mappingJackson2HttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    <!--處理中文亂碼以及避免IE執(zhí)行AJAX時(shí),返回JSON出現(xiàn)下載文件-->
    <property name="supportedMediaTypes">
        <list>
            <value>text/html;charset=UTF-8</value>
            <value>text/json;charset=UTF-8</value>
            <value>application/json;charset=UTF-8</value>
        </list>
    </property>
</bean>

2.3 @ResponseBody注解使用

@ResponseBody注解的作用是將Controller的方法返回的對(duì)象通過(guò)適當(dāng)?shù)霓D(zhuǎn)換器轉(zhuǎn)換為指定的格式之后,寫入到response對(duì)象的body區(qū),通常用來(lái)返回JSON數(shù)據(jù)或者是XML數(shù)據(jù)。

注意:在使用此注解之后不會(huì)再走視圖解析器,而是直接將數(shù)據(jù)寫入到輸入流中,他的效果等同于通過(guò)response對(duì)象輸出指定格式的數(shù)據(jù)。

2.4 實(shí)例演示

Mapper.xml的配置:

  <select id="mapListPager" resultType="java.util.Map" parameterType="com.Bingzy.model.Tbook" >
    select  * from t_mvc_book
    <where>
      <if test="bname != null">
        and bname like concat('%',#{bname},'%')
      </if>
      <if test="bid != null">
        and bid = #{bid}
      </if>
    </where>
  </select>

Mapper類的方法:

    List<Map> mapListPager(Tbook tbook);

Biz層:

    List<Map> mapListPager(Tbook tbook,PageBean pageBean);

實(shí)現(xiàn)Biz層:?

    @Override
        public List<Map> mapListPager(Tbook tbook, PageBean pageBean) {
            return tbookMapper.mapListPager(tbook);
    }

JsonController層:?

/**
 * @Name BingBing
 * @company zking cy
 * @create 2023-09-08-19:51
 */
@Controller
@RequestMapping("/book")
public class JsonController {
    @Autowired
    private TbookBiz tbookbiz;

    /**
     * 返回List<T>
     * @param req
     * @param tbook
     * @return
     */
    @ResponseBody
    @RequestMapping("/list")
    public List<Tbook> list(HttpServletRequest req, Tbook tbook){
        PageBean pageBean = new PageBean();
        pageBean.setRequest(req);
        List<Tbook> lst = this.tbookbiz.listPager(tbook, pageBean);
        return lst;
    }

    /**
     * 返回T
     * @param req
     * @param tbook
     * @return
     */
    @ResponseBody
    @RequestMapping("/load")
    public Tbook load(HttpServletRequest req, Tbook tbook){
        if(tbook.getBid() != null){
            List<Tbook> lst = this.tbookbiz.listPager(tbook, null);
            return lst.get(0);
        }
        return null;
    }


    /**
     * 返回List<Map>
     * @param req
     * @param tbook
     * @return
     */
    @ResponseBody
    @RequestMapping("/mapList")
    public List<Map> mapList(HttpServletRequest req, Tbook tbook){
        PageBean pageBean = new PageBean();
        pageBean.setRequest(req);
        List<Map> lst = this.tbookbiz.mapListPager(tbook, pageBean);
        return lst;
    }

    /**
     * 返回Map
     * @param req
     * @param tbook
     * @return
     */
    @ResponseBody
    @RequestMapping("/mapLoad")
    public Map mapLoad(HttpServletRequest req, Tbook tbook){
        if(tbook.getBid() != null){
            List<Map> lst = this.tbookbiz.mapListPager(tbook, null);
            return lst.get(0);
        }
        return null;
    }


    @ResponseBody
    @RequestMapping("/all")
    public Map all(HttpServletRequest req, Tbook tbook){
        PageBean pageBean = new PageBean();
        pageBean.setRequest(req);
        List<Tbook> lst = this.tbookbiz.listPager(tbook, pageBean);
        Map map = new HashMap();
        map.put("lst",lst);
        map.put("pageBean",pageBean);
        return map;
    }

    @ResponseBody
    @RequestMapping("/jsonStr")
    public String jsonStr(HttpServletRequest req, Tbook tbook){
        return "clzEdit";
    }


}

以下我會(huì)以JSON格式的不同情況來(lái)演示數(shù)據(jù)回顯

返回List<T>:

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解,json,spring,intellij-idea,mvc,java

返回T:

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解,json,spring,intellij-idea,mvc,java

?返回List<Map>:

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解,json,spring,intellij-idea,mvc,java

返回Map:

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解,json,spring,intellij-idea,mvc,java

返回JSON數(shù)組:

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解,json,spring,intellij-idea,mvc,java

返回字符串:

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解,json,spring,intellij-idea,mvc,java

三,異常機(jī)制的處理

3.1 異常機(jī)制處理概念

? ? ? 異常處理是在應(yīng)用程序中捕獲和處理異常的過(guò)程。在Spring MVC中,異常處理機(jī)制允許我們?cè)谡?qǐng)求處理的各個(gè)階段捕獲異常并采取相應(yīng)的操作,比如返回錯(cuò)誤頁(yè)面或JSON格式的錯(cuò)誤信息。通過(guò)自定義異常處理器,我們可以在應(yīng)用程序中集中管理異常,并為每種異常定義不同的處理方式

3.2 為什么要全局異常處理

? ? ? ?我們知道,系統(tǒng)中異常包括:編譯時(shí)異常和運(yùn)行時(shí)異常RuntimeException,前者通過(guò)捕獲異常從而獲取異常信息,后者主要通過(guò)規(guī)范代碼開(kāi)發(fā)、測(cè)試通過(guò)手段減少運(yùn)行時(shí)異常的發(fā)生。在開(kāi)發(fā)中,不管是dao層、service層還是controller層,都有可能拋出異常,在springmvc中,能將所有類型的異常處理從各處理過(guò)程解耦出來(lái),既保證了相關(guān)處理過(guò)程的功能較單一,也實(shí)現(xiàn)了異常信息的統(tǒng)一處理和維護(hù)。

3.3?異常處理思路

系統(tǒng)的dao、service、controller出現(xiàn)異常都通過(guò)throws Exception向上拋出,最后由springmvc前端控制器交由異常處理器進(jìn)行異常處理。springmvc提供全局異常處理器(一個(gè)系統(tǒng)只有一個(gè)異常處理器)進(jìn)行統(tǒng)一異常處理

具體來(lái)說(shuō),異常處理的思路包括以下幾個(gè)方面:

確定異常類型:在進(jìn)行異常處理之前,需要先確定可能會(huì)出現(xiàn)哪些異常情況,以及這些異常情況對(duì)應(yīng)的異常類型。

添加異常處理代碼:在程序中添加相應(yīng)的異常處理代碼,用于捕獲可能出現(xiàn)的異常,并進(jìn)行相應(yīng)的處理。

處理異常:根據(jù)不同的異常類型,采取不同的處理方式。例如,對(duì)于運(yùn)行時(shí)異常,可以采取打印錯(cuò)誤信息等方式進(jìn)行處理;對(duì)于受檢異常,則需要在方法聲明中添加throws關(guān)鍵字,并在調(diào)用該方法時(shí)進(jìn)行try-catch處理。

優(yōu)化異常處理:在實(shí)際應(yīng)用中,需要根據(jù)具體情況對(duì)異常處理進(jìn)行優(yōu)化。例如,可以使用多線程機(jī)制來(lái)提高程序的性能;或者使用日志系統(tǒng)來(lái)記錄程序運(yùn)行過(guò)程中出現(xiàn)的異常情況等。

異常處理思路圖:

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解,json,spring,intellij-idea,mvc,java

3.4 SpringMVC異常分類

  • 使用Spring MVC提供的簡(jiǎn)單異常處理器SimpleMappingExceptionResolver;

  • 實(shí)現(xiàn)Spring的異常處理接口HandlerExceptionResolver自定義自己的異常處理器;

  • 使用@ControllerAdvice + @ExceptionHandler

四,案例異常實(shí)戰(zhàn)(三種)

4.1?異常處理方式一

SpringMVC中自帶了一個(gè)異常處理器叫SimpleMappingExceptionResolver,該處理器實(shí)現(xiàn)了HandlerExceptionResolver 接口,全局異常處理器都需要實(shí)現(xiàn)該接口

在spring-mvc.xml配置文件:

    <!-- springmvc提供的簡(jiǎn)單異常處理器 -->
    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <!-- 定義默認(rèn)的異常處理頁(yè)面 -->
        <property name="defaultErrorView" value="error"/>
        <!-- 定義異常處理頁(yè)面用來(lái)獲取異常信息的變量名,也可不定義,默認(rèn)名為exception -->
        <property name="exceptionAttribute" value="ex"/>
        <!-- 定義需要特殊處理的異常,這是重要點(diǎn) -->
        <property name="exceptionMappings">
            <props>
                <prop key="java.lang.RuntimeException">error</prop>
            </props>
            <!-- 還可以定義其他的自定義異常 -->
        </property>
    </bean>

JsonController創(chuàng)建一個(gè)錯(cuò)誤方法:

    @RequestMapping("/error")
    public String error(Tbook tbook) {
        tbook = null;
        tbook.getBname();
        return "error";
    }

在WEB-INF創(chuàng)建jsp包下創(chuàng)建一個(gè)error.jsp頁(yè)面來(lái)接受報(bào)錯(cuò)信息

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解,json,spring,intellij-idea,mvc,java

error.jsp:?

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>系統(tǒng)繁忙</title>
</head>
<body>
<b1>發(fā)生異常?。?!</b1>
${ex }
</body>
</html>

運(yùn)行結(jié)果:

注意:因?yàn)樵贘sonController已經(jīng)給實(shí)體為null值了接受的Bname值為空值,所以報(bào)出空指針異常

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解,json,spring,intellij-idea,mvc,java

1.通過(guò)instanceof判斷異常類型

2.通過(guò)設(shè)置mv.setView(new MappingJackson2JsonView())方式返回JSON數(shù)據(jù)

4.2 異常處理方式二

創(chuàng)建一個(gè)Package包,定義GlobalException類并繼承RuntimeException

GlobalException類:

package com.Bingzy.Excetion;

public class GlobalException extends RuntimeException {
    public GlobalException() {
    }

    public GlobalException(String message) {
        super(message);
    }

    public GlobalException(String message, Throwable cause) {
        super(message, cause);
    }

    public GlobalException(Throwable cause) {
        super(cause);
    }

    public GlobalException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }
}

再創(chuàng)建一個(gè)Package包,定義GlobalExceptionHandler類并繼承HandlerExceptionResolver?

GlobalExceptionHandler類:

@Component
public class GlobalExceptionHandler implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest,
                                         HttpServletResponse httpServletResponse,
                                         Object o, Exception e) {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("error");
        if (e instanceof GlobalException){
            GlobalException globalException = (GlobalException) e;
            mv.addObject("ex",globalException.getMessage());
            mv.addObject("msg","全局異常....");
        }else if (e instanceof RuntimeException){
            RuntimeException runtimeException = (RuntimeException) e;
            mv.addObject("ex",runtimeException.getMessage());
            mv.addObject("msg","運(yùn)行時(shí)異常....");
        }
        return mv;
    }
}

在JsonController中再創(chuàng)建一個(gè)error2方法

    @RequestMapping("/error2")
    public String error2(Tbook tbook) {
        if (true)
            throw  new GlobalException("你不正經(jīng) 怎么能亂發(fā)請(qǐng)求呢?????");
        return "error";
    }

error.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>系統(tǒng)繁忙</title>
</head>
<body>
<b1>發(fā)生異常!??!</b1>
<br>-----------------------<br>
${ex }
<br>--------------------<br>
${msg }
</body>
</html>

運(yùn)行結(jié)果:

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解,json,spring,intellij-idea,mvc,java

4.3?異常處理方式三

定義一個(gè)GlobalExceptionResolver類

package com.Bingzy.GlobaExcetion;

import com.Bingzy.Excetion.GlobalException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

@ControllerAdvice
public class GlobalExceptionResolver {


// 返回錯(cuò)誤json數(shù)據(jù)
    @ResponseBody
    @ExceptionHandler
    public Map handler(Exception e){
        Map map = new HashMap();
        if (e instanceof GlobalException){
            GlobalException globalException = (GlobalException) e;
            map.put("ex",globalException.getMessage());
            map.put("msg","全局異常....");
        }else if (e instanceof RuntimeException){
            RuntimeException runtimeException = (RuntimeException) e;
            map.put("ex",runtimeException.getMessage());
            map.put("msg","運(yùn)行時(shí)異常....");
        }else {
            map.put("ex",e.getMessage());
            map.put("msg","其它異常....");
        }
        return map;
    }
}

?這種方式是將我們的錯(cuò)誤信息進(jìn)行map保存然后轉(zhuǎn)換為JSON格式輸出在頁(yè)面上

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解,json,spring,intellij-idea,mvc,java

好啦 今天的分享就到這啦? 感覺(jué)還不錯(cuò)的小伙伴還請(qǐng)三連噢!

SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解,json,spring,intellij-idea,mvc,java文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-726870.html

到了這里,關(guān)于SpringMVC之JSON數(shù)據(jù)返回與異常處理機(jī)制---全方面講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring MVC學(xué)習(xí)隨筆-Ajax集成(JSON格式返回?cái)?shù)據(jù))、攔截器(MyInterceptor)、全局異常處理(GlobalExceptionResolver)

    Spring MVC學(xué)習(xí)隨筆-Ajax集成(JSON格式返回?cái)?shù)據(jù))、攔截器(MyInterceptor)、全局異常處理(GlobalExceptionResolver)

    學(xué)習(xí)視頻:【編程不良人】繼spring之后快速入門springmvc,面對(duì)SpringMVC不用慌 引入相關(guān)依賴 開(kāi)發(fā)控制器 日期格式修正 可以正常響應(yīng) 攔截器 :Interceptor 攔截 中斷 類似于javaweb中的Filter,不過(guò)沒(méi)有Filter那么強(qiáng)大 作用 Spring MVC的攔截器是一種用于在請(qǐng)求處理過(guò)程中進(jìn)行預(yù)處理和后處

    2024年02月05日
    瀏覽(24)
  • SpringMVC攔截器和異常處理機(jī)制

    SpringMVC攔截器和異常處理機(jī)制

    SpringMVC攔截器類似于過(guò)濾器,用于進(jìn)行預(yù)處理和后處理 將攔截器按照一定順序連接成一條鏈,就是攔截器鏈 創(chuàng)建攔截器類實(shí)現(xiàn)HandlerInterceptor接口 配置攔截器 測(cè)試攔截器的攔截效果 三個(gè)方法的執(zhí)行:在配置文件中依次配置兩個(gè)攔截器分別為1和2,則執(zhí)行順序是:1的 preHandle

    2024年02月16日
    瀏覽(27)
  • 04 SpringMVC響應(yīng)數(shù)據(jù)之頁(yè)面跳轉(zhuǎn)控制+返回JSON數(shù)據(jù)+返回靜態(tài)資源

    04 SpringMVC響應(yīng)數(shù)據(jù)之頁(yè)面跳轉(zhuǎn)控制+返回JSON數(shù)據(jù)+返回靜態(tài)資源

    總結(jié): 請(qǐng)求數(shù)據(jù)接收,我們都是通過(guò)handler的形參列表 前端數(shù)據(jù)響應(yīng),我們都是通過(guò)handler的return快速處理! https://blog.csdn.net/m0_59735420/article/details/128126514 什么是返回模板視圖頁(yè)面? 當(dāng)http請(qǐng)求被controller中的handler處理時(shí),有時(shí)需要指定響應(yīng)的頁(yè)面(返回本地的) 為什么要

    2024年01月18日
    瀏覽(26)
  • SpringMVC JSON數(shù)據(jù)處理見(jiàn)解6

    SpringMVC JSON數(shù)據(jù)處理見(jiàn)解6

    springmvc 默認(rèn)使用jackson作為json類庫(kù),不需要修改applicationContext-servlet.xml任何配置,只需引入以下類庫(kù)springmvc就可以處理json數(shù)據(jù): @RequestBody:作用是接收前端ajax傳遞給后端的json字符串,并將json格式的數(shù)據(jù)轉(zhuǎn)為java對(duì)象 @ResponseBody:作用是將java對(duì)象轉(zhuǎn)為json格式的數(shù)據(jù)傳遞給前臺(tái)

    2024年01月18日
    瀏覽(53)
  • 【ARM】-數(shù)據(jù)訪問(wèn)中止異常中斷處理程序的返回

    【ARM】-數(shù)據(jù)訪問(wèn)中止異常中斷處理程序的返回

    當(dāng)發(fā)生數(shù)據(jù)訪問(wèn)中止異常中斷時(shí),程序要返回到該有問(wèn)題的數(shù)據(jù)指令處,重新訪問(wèn)該數(shù)據(jù)。因此數(shù)據(jù)訪問(wèn)中止異常中斷程序應(yīng)該返回到該數(shù)據(jù)訪問(wèn)中止異常中斷的指令處,而不是像前面兩種情況下返回到發(fā)生中斷的指令的下一條指令。 數(shù)據(jù)訪問(wèn)中止異常中斷是由數(shù)據(jù)訪問(wèn)指令

    2024年02月12日
    瀏覽(23)
  • Spring Boot 優(yōu)雅實(shí)現(xiàn)統(tǒng)一數(shù)據(jù)返回格式+統(tǒng)一異常處理+統(tǒng)一日志處理

    Spring Boot 優(yōu)雅實(shí)現(xiàn)統(tǒng)一數(shù)據(jù)返回格式+統(tǒng)一異常處理+統(tǒng)一日志處理

    ????????在我們的項(xiàng)目開(kāi)發(fā)中,我們都會(huì)對(duì)數(shù)據(jù)返回格式進(jìn)行統(tǒng)一的處理,這樣可以方便前端人員取數(shù)據(jù),當(dāng)然除了正常流程的數(shù)據(jù)返回格式需要統(tǒng)一以外,我們也需要對(duì)異常的情況進(jìn)行統(tǒng)一的處理,以及項(xiàng)目必備的日志。 ????????在項(xiàng)目開(kāi)發(fā)中返回的是json格式的數(shù)據(jù)

    2024年01月19日
    瀏覽(30)
  • SpringMVC之異常處理
SpringMVC之異常處理

    SpringMVC之異常處理 SpringMVC之異常處理

    異常分為編譯時(shí)異常和運(yùn)行時(shí)異常,編譯時(shí)異常我們trycatch捕獲,捕獲后自行處理,而運(yùn)行時(shí)異常是不可預(yù)期的,就需要規(guī)范編碼來(lái)避免,在SpringMVC中,不管是編譯異常還是運(yùn)行時(shí)異常,都可以最終由SpringMVC提供的異常處理器進(jìn)行統(tǒng)一管理,這樣就可以避免隨時(shí)隨地捕獲異常

    2024年02月12日
    瀏覽(22)
  • Python小白入門:文件、異常處理和json格式存儲(chǔ)數(shù)據(jù)

    Python小白入門:文件、異常處理和json格式存儲(chǔ)數(shù)據(jù)

    所用資料 代碼中所用到的文件可以從下面的網(wǎng)站進(jìn)行下載: https://www.ituring.com.cn/book/2784 open函數(shù) 打開(kāi) 一個(gè)文件。 接收參數(shù)為需要打開(kāi)的文件名 。Python會(huì)在 當(dāng)前執(zhí)行的文件所在目錄下 查找指定文件,因此需要把pi_digits.txt文件放在執(zhí)行文件的同目錄下。 open函數(shù)返回一個(gè)表示

    2024年02月13日
    瀏覽(20)
  • Spring Boot 統(tǒng)一功能處理(攔截器實(shí)現(xiàn)用戶登錄權(quán)限的統(tǒng)一校驗(yàn)、統(tǒng)一異常返回、統(tǒng)一數(shù)據(jù)格式返回)

    Spring Boot 統(tǒng)一功能處理(攔截器實(shí)現(xiàn)用戶登錄權(quán)限的統(tǒng)一校驗(yàn)、統(tǒng)一異常返回、統(tǒng)一數(shù)據(jù)格式返回)

    目錄 1. 用戶登錄權(quán)限校驗(yàn) 1.1 最初用戶登錄權(quán)限效驗(yàn) 1.2 Spring AOP 用戶統(tǒng)?登錄驗(yàn)證 1.3 Spring 攔截器 (1)創(chuàng)建自定義攔截器 (2)將自定義攔截器添加到系統(tǒng)配置中,并設(shè)置攔截的規(guī)則 1.4 練習(xí):登錄攔截器 (1)實(shí)現(xiàn) UserController 實(shí)體類 (2)返回的登錄頁(yè)面:login.html (3)實(shí)

    2024年02月12日
    瀏覽(59)
  • 【Spring Boot】攔截器與統(tǒng)一功能處理:統(tǒng)一登錄驗(yàn)證、統(tǒng)一異常處理與統(tǒng)一數(shù)據(jù)返回格式

    【Spring Boot】攔截器與統(tǒng)一功能處理:統(tǒng)一登錄驗(yàn)證、統(tǒng)一異常處理與統(tǒng)一數(shù)據(jù)返回格式

    ?Spring AOP是一個(gè)基于面向切面編程的框架,用于將橫切性關(guān)注點(diǎn)(如日志記錄、事務(wù)管理)與業(yè)務(wù)邏輯分離,通過(guò)代理對(duì)象將這些關(guān)注點(diǎn)織入到目標(biāo)對(duì)象的方法執(zhí)行前后、拋出異?;蚍祷亟Y(jié)果時(shí)等特定位置執(zhí)行,從而提高程序的可復(fù)用性、可維護(hù)性和靈活性。但使用原生Sp

    2024年02月16日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包