-
MessageSource - 다국어SPRING/스프링프레임워크 핵심개념 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; } }
'SPRING > 스프링프레임워크 핵심개념' 카테고리의 다른 글
ResourceLoader (0) 2021.05.17 ApplicationEventPublisher (0) 2021.05.16 Environment - 프로퍼티 (0) 2021.05.14 Environment - 프로파일 (0) 2021.05.14 Bean의 스코프 (0) 2021.05.13