인프런 커뮤니티 질문&답변

김동호님의 프로필 이미지

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

웹 애플리케이션에 메시지 적용하기

properties 말고 yml에는 이렇게 하는게 맞을까요?

작성

·

1.2K

2

안녕하세요 선생님!

강의를 듣고 제 프로젝트에 메세지를 적용시켜보고 있습니다.

제 강의는 설정파일이 .yml이라서 yml형식으로 설정을 따라해보았습니다.

application.yml

spring:
...(생략)
messages:
basename: messages
...(생략)

messages.yml

label:
search:
siteName: "사이트 이름111"
lectureName: "강의 이름"
teacherName: "강의자 이름"
starRating: "별 점"
...(생략)

이렇게 yml파일을 구성한뒤 html에서 똑같이

th:text=#{label.search.siteName} 를 해보았는데 적용이안됩니다.


그래서 구글링을 좀 해보니 yml messages을 properties처럼 사용하는 라이브러리를 찾아서 적용해보았습니다.

build.gradle

implementation 'net.rakugakibox.util:yaml-resource-bundle:1.1'

MessageConfiguration

package dongho.classflix.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MessageConfiguration implements WebMvcConfigurer {

@Bean
public MessageSource messageSource(
@Value("${spring.messages.basename}") String basename,
@Value("${spring.messages.encoding}") String encoding
){
YamlMessageSource ms = new YamlMessageSource();
ms.setBasename(basename);
ms.setDefaultEncoding(encoding);
ms.setAlwaysUseMessageFormat(true);
ms.setUseCodeAsDefaultMessage(true);
ms.setFallbackToSystemLocale(true);
return ms;
}

private static class YamlMessageSource extends ResourceBundleMessageSource{
}
}

그래도 적용이 안되었습니다.

messages는 보통 properties로 사용을 한다고 하기에,

일단 지금은  application.yml와 messages.properties를 사용하여 해결한 상태입니다.

질문정리

1. messages.yml을 사용하려면 어떻게 해야하나요?

2. 그냥 application.yml에 messages.properties를 사용해도 무방할까요?

답변 2

3

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 김동호님

1. messages.yml을 사용하려면 어떻게 해야하나요?

-> messages는 yml을 사용할 수 없는 것으로 알고 있습니다.

2. 그냥 application.yml에 messages.properties를 사용해도 무방할까요?

-> 네 괜찮습니다.

감사합니다.

0

김동호님의 프로필 이미지
김동호
질문자

감사합니다!