如何将另一个属性文件中的值注入 ValidationMessages.properties?

How to inject values from another properties file into ValidationMessages.properties?

我需要更改 hibernate-validator 使用的 @NotNull 消息。

已使用 ValidationMessages.properties 中的一行成功完成此操作,例如:javax.validation.constraints.NotNull.message=my validation message.

然而,这并不是我们所需要的。将保留有关原因的详细信息,但所有这些消息都应源自单个 messages.properties 文件,其目的不仅用于验证,还用于其他消息。

假设 messages.properties 最初包含单个 属性 CCCI_0001=my generic message。是否有可能以某种方式将 messages.properties 中的 属性 值替换为 ValidationMessages.properties 中的占位符?

您可以做的是 bootstrap 您的 ValidatorFactory 自定义 MessageInterpolator。如果您乐于使用 Hibernate Validator 的特定功能,您可以使用 ResourceBundleLocator - 请参阅 http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-custom-message-interpolation。它看起来有点像这样:

Validator validator = Validation.byDefaultProvider()
        .configure()
        .messageInterpolator(
                new ResourceBundleMessageInterpolator(
                        new PlatformResourceBundleLocator( "MyMessages" )
                )
        )
        .buildValidatorFactory()
        .getValidator();