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
반응형