1. Messages.properties 파일 생성하기

resources 폴더 밑에 messages.properties 파일을 생성한다. 
파일은 messages_언어.properties

2.Spring에 MessageSource 설정하기

Config.java

@Configuration
@EnableWebMvc
@ComponentScan(
basePackages="com.example.app"
)
public class Config extends WebMvcConfigurerAdapter{
@Bean
public MessageSource messageSource(){
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasenames("messages/messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor(){
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("lang");
return localeChangeInterceptor;
}
@Bean(name = "localeResolver")
public LocaleResolver sessionLoacleResolver(){
SessionLocaleResolver localeResolver = new SessionLocaleResolver();
localeResolver.setDefaultLocale(Locale.ENGLISH);
return localeResolver;
}
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(localeChangeInterceptor());
}
}

WebMvcConfigurerAdapter 상속받은 Config.java MessageSource 설정을 진행한다.

3. 사용하는 방법

@Autowired
private MessageSource messageSource;

MessageSource를 사용하기위해 DI(Dependency Injection) 하여 사용한다.

MessageSource Method 인자 설명

String getMessage(String code, Object[] args, String defaultMessage, Locale locale);

code : 프로퍼티에서 설정한 key 값 
args : key에 해당하는 value값에 {0}, {1} 등으로 매핑되는 값 
defaultMessage : key 값을 찾지 못할 경우 표출될 값 
locale : 지역코드 값

사용예

String message = messageSource.getMessage("com.button", null, locale);



블로그 이미지

클라인STR

,