스프링은 기본적인 메시지 관리 기능을 제공한다.
메시지 관리 기능을 사용하려면 스프링이 제공하는 MessageSource 를 스프링 빈으로 등록하면 되는데,
MessageSource 는 인터페이스이다.
따라서 구현체인 ResourceBundleMessageSource 를 스프링 빈으로 등록하면 된다.
직접 등록 - ItemServiceApplication
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = newResourceBundleMessageSource();
messageSource.setBasenames("messages", "errors");
messageSource.setDefaultEncoding("utf-8");
return messageSource;
}
basenames : 설정 파일의 이름을 지정한다.
- messages 로 지정하면 messages.properties 파일을 읽어서 사용한다.
- 추가로 국제화 기능을 적용하려면 messages_en.properties , messages_ko.properties 와 같이
파일명 마지막에 언어 정보를 주면된다. 만약 찾을 수 있는 국제화 파일이 없으면
messages.properties (언어정보가 없는 파일명)를 기본으로 사용한다.
- 파일의 위치는 /resources/messages.properties 에 두면 된다.
- 여러 파일을 한번에 지정할 수 있다. 여기서는 messages , errors 둘을 지정했다.
defaultEncoding : 인코딩 정보를 지정한다. utf-8 을 사용하면 된다.
스프링 부트
스프링 부트를 사용하면 스프링 부트가 MessageSource 를 자동으로 스프링 빈으로 등록한다.
스프링 부트 메시지 소스 설정
스프링 부트를 사용하면 다음과 같이 메시지 소스를 설정할 수 있다.
application.properties
spring.messages.basename=messages,config.i18n.messages
스프링 부트 메시지 소스 기본 값
spring.messages.basename=messages MessageSource 를 스프링 빈으로 등록하지 않고,
스프링 부트와 관련된 별도의 설정을 하지 않으면 messages 라는 이름으로 기본 등록된다.
따라서 messages_en.properties , messages_ko.properties , messages.properties 파일만 등록하면 자동으로 인식된다.
메시지 파일 만들기
메시지 파일을 만들어보자. 국제화 테스트를 위해서 messages_en 파일도 추가하자.
- messages.properties :기본 값으로 사용(한글)
- messages_en.properties : 영어 국제화 사용
주의! 파일명은 massage가 아니라 messages다! 마지막 s에 주의하자
/resources/messages.properties
messages.properties
hello=안녕
hello.name=안녕 {0}
/resources/messages_en.properties
messages_en.properties
hello=hello
hello.name=hello {0}
'스프링 > 스프링 웹 개발 활용' 카테고리의 다른 글
[Spring] 웹 애플리케이션에 스프링 메시지 적용하기 (0) | 2023.06.28 |
---|---|
[Spring] 스프링 메시지 소스 사용 및 .properties 파일 인코딩 설정 (0) | 2023.06.28 |
[Spring] 스프링 메시지, 국제화 개념 (0) | 2023.06.27 |
[Spring] 스프링 메시지, 국제화를 위한 프로젝트 설정 (0) | 2023.06.27 |
[Spring] 스프링 타임리프 통합 - 셀렉트 박스 (0) | 2023.06.27 |
댓글