-
스프링 MessageSourceSPRING 2020. 4. 15. 15:38
MessageSource는 국제화 기능을 제공하는 인터페이스이다.
ApplicationContext는 MessageSource는 상속 받기 때문에 ApplicationContext를 사용해도 됨.
-아래와 같은 properties를 생성하여 사용하면 됨-
messages.properties (default)
messages_ko_kr.properties (한국어)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950package com.example.demo;import java.util.Locale;import org.springframework.context.ApplicationContext;import org.springframework.context.MessageSource;import org.springframework.stereotype.Component;@Componentpublic class AppRunner implements ApplicationRunner {@AutowiredMessageSource messageSource;@AutowiredApplicationContext ctx;@AutowiredBookRepository bookRepository;@Value("${app.name}")String appName;@Overridepublic void run(ApplicationArguments args) throws Exception {// TODO Auto-generated method stubEnvironment environment = ctx.getEnvironment();System.out.println(appName);System.out.println(messageSource.getMessage("greeting", new String[]{"bins2"}, Locale.getDefault()));}}http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter아래와 같이 ReloadableResourceBundleMessageSource 객체를 이용하여 Bean을 생성하면, Reloadable 하게 운영할 수 있다. (즉 운영 중에, message를 바꿀 수 있음.)
1234567891011121314151617181920212223242526272829package com.example.demo;import org.springframework.context.MessageSource;import org.springframework.context.annotation.PropertySource;import org.springframework.context.support.AbstractResourceBasedMessageSource;import org.springframework.context.support.ReloadableResourceBundleMessageSource;@SpringBootApplication@PropertySource("classpath:/app.properties")public class Demo1Application {public static void main(String[] args) {SpringApplication.run(Demo1Application.class, args);}@Beanpublic MessageSource messageSource() {MessageSource messageSource = new ReloadableResourceBundleMessageSource();((AbstractResourceBasedMessageSource) messageSource).setBasename("classpath:/messages");((AbstractResourceBasedMessageSource) messageSource).setDefaultEncoding("UTF-8");((AbstractResourceBasedMessageSource) messageSource).setCacheSeconds(3);return messageSource;}}http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter'SPRING' 카테고리의 다른 글
ResourceLoader 관련 정리 (0) 2020.04.19 스프링 이벤트 프로그래밍 -ApplicationEventPublisher (0) 2020.04.19 스프링 Properties 관련 정리 (0) 2020.04.15 스프링 프로파일 (Profile) (0) 2020.04.14 스프링 빈 스코프 (싱글톤, 프로토타입) (0) 2020.04.12