728x90
ApplicationContext
은 여러가지 클래스를 상속받는다.
그 중 MessageSource 를 알아보자.
여러 메시지 기능(다국어, 캐시 등)을 제공한다.
MessageSource
Spring은 다국어 기능을 지원한다.
MessageSource
는 빈으로 등록되어 있는 클래스이기 때문에, @Autowired
로 의존성 주입이 가능하여 바로 끌어다 사용할 수 있다.
여기서 getMessage()
메소드를 사용하면 된다.
다국어 메시지 설정은 프로퍼티 파일을 생성하면 된다.
messages_ko_KR.properties
greeting=안녕 {0}
messages.properties
greeting=Hello {0}
Runner로 테스트를 해보자.
@Component
public class AppRunner implements ApplicationRunner {
@Autowired
MessageSource messageSource;
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println(messageSource.getClass());
System.out.println(messageSource.getMessage("greeting", new String[]{"Rabbit"}, Locale.getDefault()));
System.out.println(messageSource.getMessage("greeting", new String[]{"Rabbit"}, Locale.KOREA));
}
}
내 프로젝트에서는 default 값이 KOREA 였는데, 영어를 원하면 messages_en.properties
를 만들어서 Locale.ENGLISH
로 가져오면 된다.
728x90
'Java, Kotlin, Spring > Spring, Spring Boot' 카테고리의 다른 글
Spring - ResourceLoader (64) | 2021.01.12 |
---|---|
Spring - ApplicationEventPublisher (4) | 2021.01.12 |
Spring - 프로파일, 프로퍼티 (4) | 2021.01.11 |
Spring IoC - ComponentScan, Bean scope (2) | 2021.01.10 |
Spring IoC - @Autowired (4) | 2021.01.10 |
댓글