ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.