我正在使用Spring的MessageSource
从类路径中的.properties
文件加载错误消息。我的属性尊重某个“模板”,例如{Object}.{field}.{unrespectedConstraint}
示例:
userRegistrationDto.password.Size= Le mot de passe doit avoir au minimum 6 caractères.
userRegistrationDto.email.ValidEmail= Merci de saisir une addresse mail valide.
在重构的情况下(例如更改类的名称),我必须在几个地方更改我的属性文件。
是否有任何方法可以使用yaml文件(messages.yml)作为资源包来获取以下内容:
userRegistrationDto:
password:
Size: Le mot de passe doit avoir au minimum 6 caractères.
email:
ValidEmail: Merci de saisir une addresse mail valide.
最佳答案
我认为这应该足以满足您的需求,如果您需要在VM操作期间重新加载消息源,则可能需要进行更多的挖掘。
@Configuration
public class TestConfig {
@Bean(name = "testProperties")
public Properties yamlProperties() throws IOException {
YamlPropertiesFactoryBean bean = new YamlPropertiesFactoryBean();
bean.setResources(new ClassPathResource("test.yml"));
return bean.getObject();
}
@Bean
public MessageSource messageSource() throws IOException {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setCommonMessages(yamlProperties());
return messageSource;
}
}