본문 바로가기
Java, Kotlin, Spring/Spring, Spring Boot

Spring - Messagesource

by Wordbe 2021. 1. 12.
728x90

ApplicationContext 은 여러가지 클래스를 상속받는다.

그 중 MessageSource 를 알아보자.

여러 메시지 기능(다국어, 캐시 등)을 제공한다.

 


MessageSource

Spring은 다국어 기능을 지원한다.

MessageSource 는 빈으로 등록되어 있는 클래스이기 때문에, @Autowired 로 의존성 주입이 가능하여 바로 끌어다 사용할 수 있다.

여기서 getMessage() 메소드를 사용하면 된다.

다국어 메시지 설정은 프로퍼티 파일을 생성하면 된다.

messages_ko_KR.properties

greeting=안녕 {0}

messages.properties

greeting=Hello {0}

Runner로 테스트를 해보자.

@Component
public class AppRunner implements ApplicationRunner {

    @Autowired
    MessageSource messageSource;

    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println(messageSource.getClass());
        System.out.println(messageSource.getMessage("greeting", new String[]{"Rabbit"}, Locale.getDefault()));
        System.out.println(messageSource.getMessage("greeting", new String[]{"Rabbit"}, Locale.KOREA));
    }
}

 

내 프로젝트에서는 default 값이 KOREA 였는데, 영어를 원하면 messages_en.properties 를 만들어서 Locale.ENGLISH 로 가져오면 된다.

 

 

 

 

 

 

728x90

'Java, Kotlin, Spring > Spring, Spring Boot' 카테고리의 다른 글

Spring - ResourceLoader  (64) 2021.01.12
Spring - ApplicationEventPublisher  (4) 2021.01.12
Spring - 프로파일, 프로퍼티  (4) 2021.01.11
Spring IoC - ComponentScan, Bean scope  (2) 2021.01.10
Spring IoC - @Autowired  (4) 2021.01.10

댓글