SPRING/스프링프레임워크 핵심개념
MessageSource - 다국어
JUMP개발자
2021. 5. 16. 00:07
MessageSource는 다국어를 제공하는 기능이다.
또한 ApplicationContext는 MessageSource를 상속 받고 있기 때문에 ApplicationContext를 사용할 수도 있다.
아래와 같이 messages.properties를 생성하여 사용한다.
/resources/messages.properties
greeting= Hello!! {0}
/resources/messages_ko_KR.properties
greeting= 안녕!!, {0}
@Component
public class AppRunner implements ApplicationRunner {
@Autowired
MessageSource messageSource;
@Override
public void run(ApplicationArguments args) throws Exception {
Locale.setDefault(Locale.ROOT);
while(true) {
System.out.println(messageSource.getMessage("greeting", new String[]{"jump"}, Locale.getDefault()));
System.out.println(messageSource.getMessage("greeting", new String[]{"jump"}, Locale.KOREA));
}
}
}
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Bean
public MessageSource messageSource() {
var messageSource = new ReloadableResourceBundleMessageSource();
// Reloadable : 운영 중에 프로젝트 빌드를 통해 메시지 변경이 가능하다.
messageSource.setBasename("classpath:/messages");
messageSource.setDefaultEncoding("UTF-8");
// UTF-8 설정
messageSource.setCacheSeconds(3);
// Resource Caching 하는 시간을 3초로 설정하여 3초마다 프로퍼티를 다시 읽도록 함
return messageSource;
}
}