작성
·
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를 사용해도 무방할까요?