반응형
스프링 메시지 소스 사용
MessageSource 인터페이스 코드를 열어보면 일부 파라미터로 메시지를 읽어오는 기능을 제공하는 것을 확인할 수 있다.
@Autowired
MessageSource ms;
ms.getMessage()는 code, args, locale 값을 받는다.
@Test
void helloMessage() {
String result = ms.getMessage("hello", null, null);
assertThat(result).isEqualTo("안녕");
}
아무것도 지정하지 않았을 경우 디폴트 값으로 설정되어 있는 한글로 들어가게 된다.
때문에 비교했을 때 안녕으로 표시되므로 테스트 통과가 된다.
메시지가 없는 경우에는 NoSuchMessageException이 발생하게 된다. 메시지가 없어도 기본 메시지(defaultMessage)를 사용하면 기본 메시지가 반환된다.
@Test
void argumentMessage() {
String result = ms.getMessage("hello.name", new Object[]{"Spring"}, null);
assertThat(result).isEqualTo("안녕 Spring");
}
저번에 설정한 hello.name=안녕 {0} 부분은 매개변수를 전달해 치환이 가능하다.
→ 안녕 Spring이 되게 된다.
@Test
void enLang() {
assertThat(ms.getMessage("hello", null, Locale.ENGLISH)).isEqualTo("hello");
}
국제화도 가능하다. locale 정보가 english이므로 messages_en을 찾아 적용한다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : 타임리프 Message 국제화 (0) | 2022.02.09 |
---|---|
[Spring Boot] : 타임리프 웹 애플리케이션 Message에 적용하기 (0) | 2022.02.09 |
[Spring Boot] : 타임리프 MessageSource 설정 (0) | 2022.02.09 |
[Spring Boot] : 타임리프 Message(메시지), 국제화 (0) | 2022.02.09 |
[Spring Boot] : 타임리프 셀렉트 박스 (0) | 2022.02.08 |
댓글