moasis-team/legacy-monolithic-be

국제화 설정

Closed this issue · 0 comments

  • GlobalExceptionHandler에서 Locale설정에 따른 메시지를 반환함

GlobalExceptionHandler

private String getErrorMessage(BusinessException businessException) {
        String errorMessage;
        try {
            errorMessage = messageSource.getMessage(businessException.getCode(),
                    businessException.getArguments() != null ? businessException.getArguments().toArray() : null,
                    Locale.getDefault());
        } catch (NoSuchMessageException e) {
            errorMessage = messageSource.getMessage(businessException.getErrorCode().getCode(), null, Locale.getDefault());
        }
        return errorMessage;
    }
  • RestControllerAdvice 에서 ErrorMessage를 설정하는 메소드이다
    • ExceptionMessage에 현재 Locale값을 적용
    • message.properties파일을 생성해도 정상적인 상황에 NoSuchMessageException을 반환하는 현상이 발생

LocaleConfig

@Configuration
public class LocaleConfig {
    @Bean
    public ResourceBundleMessageSource messageSource() {

        ResourceBundleMessageSource source= new ResourceBundleMessageSource();

	// messages 패키지 내부에 message.properties파일을 생성하고 값을 정의
        source.setBasenames("messages/message");

	// .properties 내에 값이 정의 돼있지 않을 경우 기본 메시지를 반환
        source.setUseCodeAsDefaultMessage(true);

        return source;
    }
}