如果默认的消息内插算法不能满足你的需要,也可以自定义一个MessageInterpolator实现。
自定义插值消息必须实现javax.validation.MessageInterpolator接口。这个实现是线程安全的。这个实现会被委托给默认的差值器,也就是Configuration#getDefaultMessageInterploator()方法获得的。
为了使用一个自定义消息插值器,它必须被注册,或者是在xml中配置,一般在META-INF/ validation.xml()或者把它传递给ValidatorFactory或者Validator。
一、ResourceBundleLocator
在有些情况下,你想用Bean Validation规范中的自定义消息差值算法,但是从其他的资源目录中得到错误消息,而不是ValidationMessages中。这种情况下,Hibernate Validator的ResourceBundleLocator SPI可以使用。
ResourceBundleMessageInterpolator将资源包的检索委托给该SPI。只需要像下面的例子中,传递一个实例,这个实例带有名字,当激活ValidatorFactory时,就可以使用一个可用的包。
Validator validator = Validation.byDefaultProvider(