MessageSource
Message를 다국화할 수 있는 기능을 제공하는 Interface이다.
- ApplicationContext는 MessageSource 인터페이스를 상속받고 있기 때문에 ApplicationContext으로 사용할 수 있다.
예제
- resources폴더 안에 위와 같이 messages.properties를 만든다. ko_KR에는 한국어, en에는 영어로 hello의 값을 입력한다.
- properties를 만들면 따로 폴더로 묶을 필요 없이 위와 같이 알아서 번들링이 된다.
- Locale 정보를 통해 hello의 message를 받아오면 Locale에 맞는 값이 출력되는 것을 알 수 있다.
- 한글이 깨지는 경우 setting의 File Encodings에 들어가 위와 같이 UTF-8로 설정해주면 정상적으로 동작된다.
MessageSource를 직접 설정하기
- 위의 예제에서는 스프링 부트가 자동으로 설정해준 MessageSource를 사용하였지만 이렇게 직접 빈으로 등록할 수 있다.
- 기본적인 경로와 엔코딩을 설정하고 캐시 시간도 설정이 가능하다.
- Thread.sleep()을 통해 1초마다 meesage를 출력하게 한다.
- 앱을 구동시켜보면 1초마다 메시지가 출력된다.
- 앱이 구동 중인 도중에 message의 값을 변경하였다.
- 그리고 프로젝트를 빌드하면 앱이 구동 중에도 변경내용이 적용되는 것을 알 수 있다.
'스프링 > 스프링 핵심 기술' 카테고리의 다른 글
ResourceLoader, Resource 추상화 (0) | 2019.12.16 |
---|---|
7. IoC 컨테이너: ApplicationEventPublisher (0) | 2019.12.14 |
5. IoC 컨테이너: Environment(Profile, Property) (0) | 2019.12.12 |
4. IoC 컨테이너: 빈의 스코프 (0) | 2019.12.12 |
3. IoC 컨테이너: @Component와 ComponentScan (0) | 2019.12.11 |