본문 바로가기

Spring

메시지, 국제화 : 메시지, 국제화 소개, 스프링 메시지 설정및 사용

인프런 김영한님의 스프링mvc2편을 보고 정리한글입니다.

무엇을 배웠나요?


메시지, 국제화 소개

  • 다양한 메시지를 한 곳에서 관리하는 기능을 메시지 기능이라고 한다.
  • 메시지 기능 예시
  • item=상품 item.id=상품 ID item.itemName=상품명 item.price=가격 item.quantity=수량
  • 각 HTML들은 다음과 같이 해당 데이터를 key 값으로 불러서 사용하는 것이다.
  • <label for="itemName" th:text="#{item.itemName}"></label>
  • 메시지를 나라별로 별도로 관리하면 서비스를 국제화 할 수 있다.
  • 💡한국에서 접근한건지 영어에서 접근한 것인지는 인식하는 방법은 HTTP accept-language 해더 값을 사용하거나 사용자가 직접 언어를 선택하도록 하고, 쿠키 등을 사용해서 처리하면 된다.

스프링 메시지 소스 설정

  • 메시지 관리 기능을 제공하는 MesaageSouce직접 스프링 빈으로 등록하는 방법이 존재하지만 스프링 부트를 사용하면 자동으로 빈으로 등록해준다.
  • 스프링부트 메시지 소스 기본값
  • spring.messages.basename=messages
  • 다음과 같이 인자를 받을 수도 있다.
  • hello=안녕 hello.name=안녕 {0}

스프링 메시지 소스 사용

@SpringBootTest
public class MessageSourceTest {

	 @Autowired
	 MessageSource ms;

	 @Test
	 void helloMessage() {
		 String result = ms.getMessage("hello", null, null);
		 assertThat(result).isEqualTo("안녕");
	 }
}
  • getMessage 는 code, args, defaultMesaage, locale을 설정할 수 있다.
  • 만약 국제화 파일을 사용하려면 locale에 Locale.KOREA이런식으로 설정 할 수 있다.

더 필요하다고 생각한 것이 있나요?

  • 테스트 코드의 사용법에 대해서 더 공부해야 할 듯 하다.