欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring中的@RestControllerAdvice注解使用方法解析

 更新時間:2024年01月19日 08:52:34   作者:珠光  
這篇文章主要介紹了Spring中的@RestControllerAdvice注解使用方法解析,@RestControllerAdvice是Controller的增強 常用于全局異常的捕獲處理 和請求參數的增強,需要的朋友可以參考下

@RestControllerAdvice注解使用

@RestControllerAdvice是Controller的增強 常用于全局異常的捕獲處理 和請求參數的增強

繼承@ControllerAdvice、@ResponseBody等注解 它返回的數據是JSON格式的。

異常案例

@RestControllerAdvice
@Slf4j
public class ControllerExceptionHandleAdvice {
	@ExceptionHandler
	public R handler(HttpServletRequest req, HttpServletResponse res, Exception e) {
		if (e instanceof NullPointerException) {
			log.error("請求的方法名為:{},發(fā)生空指針異常:{}", req.getRequestURI(), ExceptionUtils.getStackTrace(e));
			return R.fail("執(zhí)行異常");
		} else if (e instanceof DataIntegrityViolationException) {
			String stackTrace = ExceptionUtils.getStackTrace(e);
			log.error("請求的方法名為:{},數據庫訪問異常:{}", req.getRequestURI(), stackTrace);
			if (stackTrace.contains("唯一性約束")) {
				return R.fail("數據不能重復!");
			} else if (stackTrace.contains("非空約束")) {
				return R.fail("必填項不能空!");
			} else {
				return R.fail("數據庫異常");
			}
		}  else if (e instanceof SQLException) {
			log.error("請求的方法名為:{},數據庫訪問異常:{}", req.getRequestURI(), ExceptionUtils.getStackTrace(e));
			return R.fail("數據庫訪問執(zhí)行異常");
		} else {
			log.error("請求的方法名為:{},服務器代碼發(fā)生異常,請聯系管理員:{}", req.getRequestURI(), ExceptionUtils.getStackTrace(e));
			return R.fail("服務器代碼發(fā)生異常,請聯系管理員");
		}
	}
}

請求參數案例

@Slf4j
@RestControllerAdvice
public class MyHandler {
     /**
     * 應用到所有@RequestMapping注解方法,在其執(zhí)行之前初始化數據綁定器
     *
     * @param binder
     */
    @InitBinder
    public void initBinder(WebDataBinder binder) {
        log.info("初始化數據綁定器");
        log.info(binder.getFieldDefaultPrefix());
        log.info(binder.getFieldMarkerPrefix());
    }
    /**
     * 把值綁定到Model中,使全局@RequestMapping可以獲取到該值
     * @param model
     */
    @ModelAttribute
    public void addAttributes(Model model) {
        log.info("添加name參數");
        model.addAttribute("name", "allen");
    }
 }

到此這篇關于Spring中的@RestControllerAdvice注解使用方法解析的文章就介紹到這了,更多相關@RestControllerAdvice注解使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java web實現簡易收費站

    java web實現簡易收費站

    這篇文章主要為大家詳細介紹了java web實現簡易收費站,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一
    2020-11-11
  • SpringBoot中YAML配置文件實例詳解

    SpringBoot中YAML配置文件實例詳解

    前面一直在使用properties配置文件,spring boot也支持yaml配置文件,下面這篇文章主要給大家介紹了關于SpringBoot中YAML配置文件的相關資料,需要的朋友可以參考下
    2023-04-04
  • 基于Java事件監(jiān)聽編寫一個中秋猜燈謎小游戲

    基于Java事件監(jiān)聽編寫一個中秋猜燈謎小游戲

    眾所周知,JavaSwing是Java中關于窗口開發(fā)的一個工具包,可以開發(fā)一些窗口程序,然后由于工具包的一些限制,導致Java在窗口開發(fā)商并沒有太多優(yōu)勢,不過,在JavaSwing中關于事件的監(jiān)聽機制是我們需要重點掌握的內容,本文將基于Java事件監(jiān)聽編寫一個中秋猜燈謎小游戲
    2023-09-09
  • SpringBoot @Retryable注解方式

    SpringBoot @Retryable注解方式

    這篇文章主要介紹了SpringBoot @Retryable注解方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • JAVA超級簡單的爬蟲實例講解

    JAVA超級簡單的爬蟲實例講解

    下面小編就為大家?guī)硪黄狫AVA超級簡單的爬蟲實例講解。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java8中的類型注解淺析

    Java8中的類型注解淺析

    這篇文章主要介紹了Java8中的類型注解淺析,java8之前,注解只能是在聲明的地方所使用,java8里面的注解則可以應用在任何地方,需要的朋友可以參考下
    2014-06-06
  • SpringCloud實現全鏈路灰度發(fā)布的示例詳解

    SpringCloud實現全鏈路灰度發(fā)布的示例詳解

    灰度發(fā)布是指在軟件或服務發(fā)布過程中,將新版本的功能或服務以較小的比例引入到生產環(huán)境中,僅向部分用戶或節(jié)點提供新功能的一種發(fā)布策略,下面我們就來學習一下SpringCloud如何實現全鏈路灰度發(fā)布
    2023-11-11
  • Java 線程的生命周期詳細介紹及實例代碼

    Java 線程的生命周期詳細介紹及實例代碼

    這篇文章主要介紹了Java 線程的生命周期的相關資料,并附簡單實例代碼,幫助大家理解,需要的朋友可以參考下
    2016-10-10
  • Java8如何使用Lambda表達式簡化代碼詳解

    Java8如何使用Lambda表達式簡化代碼詳解

    這篇文章主要給大家介紹了關于Java8如何使用Lambda表達式簡化的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • java中Statement 與 PreparedStatement接口之間的關系和區(qū)別

    java中Statement 與 PreparedStatement接口之間的關系和區(qū)別

    這篇文章主要介紹了java中Statement 與 PreparedStatement接口之間的關系和區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論