SpringMVC 의 전역 이상 처리
프로젝트 를 하 는 데 일반적으로 전역 적 으로 이상 하 게 통일 적 으로 처리 되 는 클래스 가 있다 는 것 을 잘 알 고 있 습 니 다. 그러면 이 종 류 는 Spring 에서 @ Controller Advice 로 이 루어 질 수 있 습 니 다. @Controller Advice, 이것 은 매우 유용 한 주해 입 니 다. 말 그대로 이것 은 강 화 된 Controller 입 니 다.이 Controller 를 사용 하면 세 가지 기능 을 실현 할 수 있 습 니 다.
전역 이상 처리 전역 데이터 바 인 딩 전역 데이터 예비 처리 가 이 세 가지 기능 을 유연 하 게 사용 하면 많은 작업 을 간소화 할 수 있 습 니 다. 주의해 야 할 것 은 이것 은 SpringMVC 가 제공 하 는 기능 으로 Spring Boot 에서 직접 사용 할 수 있 습 니 다.
package com.boss.hr.train.fishkkmybatis.handle;
import com.boss.hr.train.fishkkmybatis.entity.Result;
import com.boss.hr.train.fishkkmybatis.enums.DictionaryEnum;
import com.boss.hr.train.fishkkmybatis.exception.BaseException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindException;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.List;
/**
* ExceptionHandel
*
*
* @author fishkk
* @version 1.0
* @since 2019/7/27
*/
@ControllerAdvice
public class ExceptionHandle {
private final static Logger logger = LoggerFactory.getLogger(ExceptionHandle.class);
/**
*
*
* Result
* @author fishkk
* @since 2019/7/28
* @param e
* @return Result
*/
@ExceptionHandler(value = Exception.class)
@ResponseBody
public Result handle(Exception e){
if (e instanceof BaseException) {
//
BaseException exception = (BaseException) e;
return new Result
@ ExceptionHandler 주 해 는 이상 한 처리 유형 을 가리 키 는 데 사 용 됩 니 다. 모든 이상 을 포착 합 니 다.그 다음 에 이상 유형의 판단 을 통 해 해당 하 는 처리 와 패 키 징 을 하고 사용자 정의 해당 클래스 와 사용자 정의 이상 류 로 매 거 진 구 조 를 되 돌려 줍 니 다. 이 는 실제 상황 에 따라 스스로 변경 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.