在 Bean Validation 1.1 中,更改默认资源包

In Bean Validation 1.1, change default resource bundle

在 Bean Validation 1.1 中,如何从默认 ValidationMessages.properties 更改为使用我自己的资源包?

我看过这个相关问题,但没有提供解决方案:How to change location of ValidationMessages.properties in Bean Validation

只需创建一个文件

yourProject\src\main\resources\ValidationMessages.properties

您的错误消息如下:

javax.validation.constraints.NotNull.message=My message, value: {value}

找到解决方案。这在 BV 规范中没有定义,而是特定于实现的。我正在使用参考实现 Hibernate 验证器。实现此目的的最简单方法是使用 PlatformResourceBundle:

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

参见 using-specific-resource-bundle-locator