프로그래밍/Spring & Spring boot

11 Spring : MessageSource를 통한 다국어 처리하는 방법

pupu91 2022. 9. 2. 16:16
반응형

 

 

1. properties 파일에 영문과 한글로 message 작성

 

 

 

 

 

 

 

2. bean 등록

@Configuration
public class ContextConfiguration {
	
	ReloadableResourceBundleMessageSource타입의 빈을 생성
	@Bean
	public ReloadableResourceBundleMessageSource messageSource() {
		
		
	접속하는 세션의 로케일에 따라 자동 재로딩하는 기능을 가진 MessageSource 구현체
	ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
		
	다국어 메세지를 읽어올 properties 파일의 기본 파일 이름을 설정한다
	messageSource.setBasename("message");
    
	기본 인코딩 셋을 설정할 수 있다.
	messageSource.setDefaultEncoding("UTF-8");
		
	return  messageSource;
	
	}

}

 

 

 

 

 

 

3. 확인하기

public class Application {

	public static void main(String[] args) {
	
		ApplicationContext context = new AnnotationConfigApplicationContext(ContextConfiguration.class);
		
		String error404Message = context.getMessage("error.404", null, Locale.US);
		String error500Message = context.getMessage("error.500", new Object[] {"byeollim", new Date()}, Locale.KOREA);
		=>properties파일 작성시 지정했던 인덱스 번호에 값을 넣어주었음.		
		
		System.out.println("error.404 : " + error404Message);
		System.out.println("error.500 : " + error500Message);
		
	}

}

출력결과
error.404 : Page Not Found!!
error.500 : 개발자의 잘못입니다. 개발자는 누구? byeollim 현재시간 22. 9. 2. 오후 4:15
반응형