亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

springboot訪問(wèn)不存在的URL時(shí)的處理方法

 更新時(shí)間:2024年12月12日 09:02:59   作者:Kwoky  
在前后端分離的模式下,當(dāng)Spring Boot應(yīng)用接收到一個(gè)不存在的URL請(qǐng)求時(shí),通常希望返回一個(gè)固定的JSON字符串作為響應(yīng),以便前端能夠據(jù)此進(jìn)行相應(yīng)的處理,本文給大家介紹了springboot訪問(wèn)不存在的URL時(shí)的處理方法,需要的朋友可以參考下

引言

在前后端分離的模式下,當(dāng)Spring Boot應(yīng)用接收到一個(gè)不存在的URL請(qǐng)求時(shí),通常希望返回一個(gè)固定的JSON字符串作為響應(yīng),以便前端能夠據(jù)此進(jìn)行相應(yīng)的處理。

最初的思路是自定義一個(gè)錯(cuò)誤控制器來(lái)處理404錯(cuò)誤,并返回一個(gè)JSON格式的響應(yīng)體。讓錯(cuò)誤控制器實(shí)現(xiàn)ErrorController接口,并重寫(xiě)getErrorPath()方法以指定錯(cuò)誤處理的路徑。然后,你可以在這個(gè)控制器中創(chuàng)建一個(gè)處理404錯(cuò)誤的方法。

然而卻發(fā)現(xiàn)springboot3.3.5中ErrorController沒(méi)有任何接口方法,只能另辟蹊徑,考慮使用ErrorPageRegistrar。

ErrorPageRegistrar

ErrorPageRegistrar是Spring Boot中用于注冊(cè)錯(cuò)誤頁(yè)面的接口。通過(guò)實(shí)現(xiàn)這個(gè)接口,可以自定義不同HTTP狀態(tài)碼對(duì)應(yīng)的錯(cuò)誤頁(yè)面。

ErrorPageRegistrar接口定義在Spring Boot的Web模塊中,它包含一個(gè)方法registerErrorPages(ErrorPageRegistry registry)。這個(gè)方法用于注冊(cè)錯(cuò)誤頁(yè)面,其中ErrorPageRegistry是一個(gè)用于添加錯(cuò)誤頁(yè)面的注冊(cè)表。

實(shí)現(xiàn)接口

創(chuàng)建一個(gè)類實(shí)現(xiàn)ErrorPageRegistrar接口,并重寫(xiě)registerErrorPages方法。在這個(gè)方法中,可以使用ErrorPageRegistry的addErrorPages方法來(lái)添加多個(gè)錯(cuò)誤頁(yè)面。

import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.server.ErrorPageRegistrar;
import org.springframework.boot.web.server.ErrorPageRegistry;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;


/**
 * @基本功能:
 * @program:ecconfigcenter
 * @author:Jet
 * @create:2024-11-07 17:29:58
 **/

@Configuration
public class ErrorPageConfig implements ErrorPageRegistrar {

    @Override
    public void registerErrorPages(ErrorPageRegistry registry) {
        // 注冊(cè)404錯(cuò)誤頁(yè)面
        ErrorPage error404 = new ErrorPage(HttpStatus.NOT_FOUND, "/ec/error/404");
        // 注冊(cè)500錯(cuò)誤頁(yè)面
        ErrorPage error500 = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/ec/error/500");
        // 將錯(cuò)誤頁(yè)面添加到注冊(cè)表中
        registry.addErrorPages(error404, error500);
    }
}

這里使用@Configuration注解標(biāo)記ErrorPageConfig為配置類,以便Spring Boot能夠自動(dòng)掃描并注冊(cè)這個(gè)配置。
在registerErrorPages方法中,通過(guò)創(chuàng)建ErrorPage對(duì)象來(lái)指定HTTP狀態(tài)碼和對(duì)應(yīng)的錯(cuò)誤處理的路徑。然后,將這些ErrorPage對(duì)象傳遞給addErrorPages方法。

注冊(cè)錯(cuò)誤處理

import cn.com.ec.eccommon.common.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

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


/**
 * @基本功能:
 * @program:ecconfigcenter
 * @author:Jet
 * @create:2024-11-07 17:29:58
 **/


@Slf4j
@RequestMapping("/ec")
@Controller
public class CustomErrorController extends BaseController {

    /**
     * 404處理
     * @return
     */
    @RequestMapping(value = "/error/404",method = RequestMethod.POST)
    @ResponseBody
    public Map<String,Object> handle404() {
        Map<String,Object>result = new HashMap<>();
        result = this.setJson(404,"url is invalid.",null);
        return result;
    }

    /**
     * 500處理
     * @return
     */
    @RequestMapping(value = "/error/500",method = RequestMethod.POST)
    @ResponseBody
    public Map<String,Object> handle500() {
        Map<String,Object>result = new HashMap<>();
        result = this.setJson(500,"Server internal error.",null);
        return result;
    }
}

到此這篇關(guān)于springboot訪問(wèn)不存在的URL時(shí)的處理方法的文章就介紹到這了,更多相關(guān)SpringBoot訪問(wèn)不存在的URL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java中字符流與字節(jié)流的區(qū)別

    詳解Java中字符流與字節(jié)流的區(qū)別

    這篇文章主要介紹了詳解Java中字符流與字節(jié)流的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • SpringCloud 如何提取公共配置

    SpringCloud 如何提取公共配置

    這篇文章主要介紹了SpringCloud 提取公共配置的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • springboot項(xiàng)目中后端接收前端傳參的方法示例詳解

    springboot項(xiàng)目中后端接收前端傳參的方法示例詳解

    這篇文章主要介紹了springboot項(xiàng)目中一些后端接收前端傳參的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • SpringBoot整合MybatisPlus的教程詳解

    SpringBoot整合MybatisPlus的教程詳解

    這篇文章主要介紹了SpringBoot整合MybatisPlus的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • java實(shí)現(xiàn)模擬進(jìn)度計(jì)量器

    java實(shí)現(xiàn)模擬進(jìn)度計(jì)量器

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)模擬進(jìn)度計(jì)量器,模擬血壓計(jì)實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • Java字符串定義及常用方法

    Java字符串定義及常用方法

    這篇文章主要介紹了Java字符串定義及常用方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • java自動(dòng)裝箱拆箱深入剖析

    java自動(dòng)裝箱拆箱深入剖析

    基本數(shù)據(jù)(Primitive)類型的自動(dòng)裝箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0開(kāi)始提供的功能。java語(yǔ)言規(guī)范中說(shuō)道:在許多情況下包裝與解包裝是由編譯器自行完成的(在這種情況下包裝成為裝箱,解包裝稱為拆箱)
    2012-11-11
  • Elasticsearch?mapping?概念及自動(dòng)創(chuàng)建示例

    Elasticsearch?mapping?概念及自動(dòng)創(chuàng)建示例

    這篇文章主要為大家介紹了Elasticsearch?mapping?概念及自動(dòng)創(chuàng)建示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • SpringMVC事件監(jiān)聽(tīng)ApplicationListener實(shí)例解析

    SpringMVC事件監(jiān)聽(tīng)ApplicationListener實(shí)例解析

    這篇文章主要介紹了SpringMVC事件監(jiān)聽(tīng)ApplicationListener實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Mybatis分頁(yè)插件PageHelper的分頁(yè)原理剖析

    Mybatis分頁(yè)插件PageHelper的分頁(yè)原理剖析

    這篇文章主要介紹了Mybatis分頁(yè)插件PageHelper的分頁(yè)原理剖析,PageHelper作為一個(gè)啟動(dòng)器,那么就和其他啟動(dòng)器加載一樣,先讀取spring.factories文件里面配置的類,轉(zhuǎn)成Bean加載本系統(tǒng)中,然后執(zhí)行他的前置后置處理方法,完成初始化,需要的朋友可以參考下
    2023-08-08

最新評(píng)論