Java 无法在Spring引导中解析模型级别属性文件中的消息

Java 无法在Spring引导中解析模型级别属性文件中的消息,java,spring-boot,properties-file,Java,Spring Boot,Properties File,我已经浏览了URL:并且在我的案例中找不到任何有用的东西 我的模型类中有以下字段,但未替换针对长度.validation.status的消息 我正在使用SpringBootv2.1.5。发布版project和 @SafeHtml(whitelistType = WhiteListType.NONE, message = "{html.validation.status}") @Length(max = ResourceSize.MAX_STATUS, message = "{length.val

我已经浏览了URL:并且在我的案例中找不到任何有用的东西

我的模型类中有以下字段,但未替换针对
长度.validation.status的消息

我正在使用SpringBoot
v2.1.5。发布版
project和

@SafeHtml(whitelistType = WhiteListType.NONE, message = "{html.validation.status}")
@Length(max = ResourceSize.MAX_STATUS, message = "{length.validation.status}")
private String status;
代码:

消息.属性

html.validation.intervention=Intervention
html.validation.status=Status
编辑-1:

我设置了以下选项,但仍然不起作用

spring:
  application:
    name: Program Catalog

# Mongo DB details
  data:
    mongodb:
      database: XX
      host: localhost
      port: 27017
  profiles:
    active:
    - dev
  messages:
    basename: messages
    fallback-to-system-locale: false

配置属性源和消息源不同,因此不需要使用
@PropertySource
@ConfigurationProperties

通过Spring引导,您可以使用
Spring.messages.*
properties配置自动配置的消息源。您可以使用
spring.messages.basename
设置消息属性文件的名称(和位置)。默认情况下:
messages.properties
在类路径中。看

但是,
@SafeHtml
是一个
hibernate验证器
注释,它并没有解析来自Spring的消息。默认情况下,这些消息来自类路径根目录中的资源束
ValidationMessages.properties
。看

尝试创建包含以下内容的文件
src/main/resources/ValidationMessages.properties

html.validation.status=Unsafe HTML

应该可以了。

我通过添加以下代码解决了这个问题。然而,我们不能在持久化实体时使用相同的代码,以防您想要给出索引名

@Bean
public MessageSource messageSource() {
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();

    messageSource.setBasename("classpath:messages");
    messageSource.setDefaultEncoding("UTF-8");
    return messageSource;
}

@Bean
public LocalValidatorFactoryBean getValidator() {
    LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean();
    bean.setValidationMessageSource(messageSource());
    return bean;
}

它仍然不起作用,请您指导一下好吗?谢谢,spring.messages.basename这个逻辑在我的情况下也不起作用。。非常奇怪。你能分享一下示例吗?因为两个解决方案/建议都不起作用。yetOK,我不知道为什么不起作用。您可以查看本文和相应的示例代码:
@Bean
public MessageSource messageSource() {
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();

    messageSource.setBasename("classpath:messages");
    messageSource.setDefaultEncoding("UTF-8");
    return messageSource;
}

@Bean
public LocalValidatorFactoryBean getValidator() {
    LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean();
    bean.setValidationMessageSource(messageSource());
    return bean;
}