728x90
반응형
MessageSource란 국제화(i18n)기능을 제공하는 인터페이스이다.
public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver {
...
}
ApplicationContext가 MessageSource를 구현한 것을 볼 수 있다. 즉, ApplicationContext는 MessageSource기능을 사용할 수 있다.
ApplicacionContext extends MessageSource
- getMessage(String code, Object[] args, String default, Locale loc)
간단히 테스트를 해보자.
일단 messageSource에 해당하는 파일을 만들어보자. (resources 하위에 아래 두 파일을 만들자.)
스프링 부트를 사용한다면 별다른 설정 없이 message.properties를 사용할 수 있다.
- message.properties
- message_ko_KR.properties
message.properties
greeting=안녕?, {0}
message_ko_KR.properties
greeting=Hello?, {0}
ApplicationRunner를 통해서, Locale에 따라 해당 메시지가 바뀌는지 테스트해보자.
@Component
public class MessageSourceAppRunner implements ApplicationRunner {
@Autowired
private ApplicationContext applicationContext;
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println(applicationContext.getMessage("greeting", new String[]{"corn"}, Locale.KOREA));
System.out.println(applicationContext.getMessage("greeting", new String[]{"corn"}, Locale.getDefault()));
}
}
안녕?, corn
Hello?, corn
728x90
반응형
'프로그래밍 노트 > SPRING' 카테고리의 다른 글
[Spring] Validation 추상화 (0) | 2020.03.24 |
---|---|
[Spring] ResourceLoader, Resource 추상화 (0) | 2020.03.22 |
[Spring] Environment 프로파일/프로퍼티 (0) | 2020.03.11 |
[Spring] 모델 바인딩과 검증_3(Validator, BindingResult, Errors) (0) | 2020.01.06 |
[Spring] 모델 바인딩과 검증_2(Converter) (0) | 2019.12.26 |