인프런 김영한님의 스프링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이런식으로 설정 할 수 있다.
더 필요하다고 생각한 것이 있나요?
- 테스트 코드의 사용법에 대해서 더 공부해야 할 듯 하다.
'Spring' 카테고리의 다른 글
검증1 - Validation : BindingResult1, 2, FieldError GlobalError (0) | 2022.08.26 |
---|---|
검증1 - Validation (0) | 2022.08.26 |
타임리프 - 스프링 통합과 폼 : 체크박스, 라디오버튼, 셀렉트 박스 (0) | 2022.08.24 |
타임리프 기타 문법 (0) | 2022.08.24 |
타임리프 - 스프링 통합과 폼 : 타임리프 입력 폼 처리 (0) | 2022.08.24 |