아래 코드와 같이, messageSource 빈을 ResourceBundleMessageSource로 생성하면, message.properties 파일에 기재한 한글이 깨지는 경우가 발생하는데, 이는 인코딩 문제일 가능성이 거의 99%다.
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
return messageSource;
}
IntelliJ를 사용하는 경우라면, 다음과 같이 설정하면 해결된다.
- Editor > File Encodings 진입 후, Transparent native-to-ascii conversion 항목을 체크해 준다.
- Default encoding for properties files 항목은, 기본값 그대로 둬도 되고 UTF-8로 설정해도 된다. (이유는 향후 살펴볼 예정)
참고로,
- 스프링의 ResourceBundleMessageSource 구현체는, 내부적으로 Java의 ResourceBundle 구현체를 이용한다.
- Java의 ResourceBundle 스펙상 ISO-8859 인코딩을 강제한다고 한다. 그래서, 이런 예외사항이 존재하는 듯하다.
'DevLogs > LearningSpring' 카테고리의 다른 글
Spring의 *Aware 인터페이스들에 대한 정리 (2) | 2024.11.13 |
---|---|
Spring AOP Introduction 기능을 활용하여 Mixin을 구현해 보자 (0) | 2024.11.07 |
@Value 어노테이션에 SpEL 사용법 (0) | 2024.10.31 |