카테고리 없음

[ Spring-Boot ] @ControllerAdice 사용하여 예외처리 하기 1편

사과씨앗 2021. 5. 19. 17:27
728x90
반응형

안녕하세요 이번 글에서는 @ControllerAdice를 사용해 보겠습니다.

 

@ControllerAdice 란? 

간단하게 말하자면 @Controller에서 발생하는 예외를 잡아서 처리해주는 annotation입니다.

 

@ControllerAdice 해당 기능을 사용하기 앞서 메시지 , 클래스 등등 만들어 주겠습니다.

 

먼저 응답을 보낼 코드와 메시지를 세팅하기 위해 BaseResponse ,  BaseResponseCode 클래스를 만들어 주겠습니다.

 

BaseResponseCode 클래스는 enum 클래스로 생성하여 사용 사용하겠습니다. 

public enum BaseResponseCode {
     VALIDATE_REQUIRED, // 필수값 체크
    ;
}

 

BaseResponse 클래스를 만들어 BaseResponseCode와 message를 받아줄 생성자를 만들어 줍시다.

 

@Data
public class BaseResponse<T> {

    private BaseResponseCode code;
    private String message;

    public BaseResponse(BaseResponseCode code, String message) {
        this.code = code;
        this.message = message;
    }
}

그다음 Code와 함께 보내줄 message를 만들어 주겠습니다. 

resource > message > message_ko.properties 파일을 만들어 줍시다.

그다음 응답 코드에 맞게 message를 설정하여 줍시다.

VALIDATE_REQUIRED = {0}({1}) 필드는 필수로 입력하셔야 합니다.

 

해당 프로퍼티 파일을 사용하기 위해 webConfiguration 클래스를 생성하여 설정하여 주겠습니다.

 

@Configuration
public class WebConfiguration implements WebMvcConfigurer {

    @Bean
    public ReloadableResourceBundleMessageSource messageSource(){
        ReloadableResourceBundleMessageSource source = new ReloadableResourceBundleMessageSource(); // 스프링 에서 제공하는 메시지소스
        source.setBasename("classpath:/messages/message"); //해당 메시지를 어느 파일에서 가져 오는지 정의
        source.setDefaultEncoding("UTF-8"); //기본 인코딩 타입
        source.setDefaultLocale(Locale.KOREAN); //기본 지역
        source.setUseCodeAsDefaultMessage(true);
        return source;
    }

 

다음 글에서 계속 진행하겠습니다. ^^ 

 

참고 영상 : https://www.inflearn.com/course/backend-%EC%86%A1%EC%9E%90%EB%B0%94#

 

 

 

728x90
반응형