다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지라고 한다.
한발 더 나아가 언어별로 메시지를 관리하는 것을 국제화 라고 한다.
spring.messages.basename=messages
application.properties 내에 입력 (생략 가능)
# meessages.properties
hello=안녕
hello.name=안녕 {0}
// 메시지를 가져오는 방법
@Test
void helloMessage() {
String hello = ms.getMessage("hello", null, null);
assertThat(hello).isEqualTo("안녕");
}
// 존재하지 않는 메시지를 가져올 때 에러 발생
@Test
void notFoundMessageCode() {
assertThatThrownBy(() -> ms.getMessage("no_code", null, null))
.isInstanceOf(NoSuchMessageException.class);
}
// 존재하지 않는 메시지를 가져올 때 기본값 대체
@Test
void notFoundMessageCodeDefaultMessage() {
String message = ms.getMessage("no_code", null, "기본메세지", null);
assertThat(message).isEqualTo("기본메세지");
}
// 메시지에 파라미터 사용
@Test
void argumentMessage() {
String message = ms.getMessage("hello.name", new Object[]{"Spring"}, null);
assertThat(message).isEqualTo("안녕 Spring");
}