본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : 타임리프 MessageSource 사용하기

by 오주현 2022. 2. 9.
반응형

스프링 메시지 소스 사용


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편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.

반응형

댓글