Java 扩展Hibernate';s ResourceBundleMessageInterpolator
我想扩展这个类:Java 扩展Hibernate';s ResourceBundleMessageInterpolator,java,spring,hibernate,interpolation,Java,Spring,Hibernate,Interpolation,我想扩展这个类:org.hibernate.validator.MessageInterpolator.ResourceBundleMessageInterpolator 并覆盖此方法: public String interpolate(String message, Context context, Locale locale) { ... } 我已经创建了MyResourceBundleMessageInterpolator: public class MyResourc
org.hibernate.validator.MessageInterpolator.ResourceBundleMessageInterpolator
并覆盖此方法:
public String interpolate(String message, Context context, Locale locale) {
...
}
我已经创建了MyResourceBundleMessageInterpolator
:
public class MyResourceBundleMessageInterpolator extends ResourceBundleMessageInterpolator {
@Override
public String interpolate(String message, Context context, Locale locale) {
return super.interpolate(message, context, locale);
}
}
我还知道我必须在ValidatorFactory
对象中注册我的消息插入器:
@Component
public class MyResourceBundleMessageInterpolatorConfigurer extends ResourceBundleMessageInterpolator {
@PostConstruct
public void init() {
ValidatorFactory validatorFactory = Validation.byDefaultProvider()
.configure()
.messageInterpolator(new MyResourceBundleMessageInterpolator())
.buildValidatorFactory();
}
}
但问题是我不知道下一步该怎么办。我如何告诉Hibernate使用这个validatorFactory
对象
我使用的是Hibernate 4.3.2+Spring 4.3.13您不需要在
验证工厂
对象中注册消息插入器。唯一的下一步是覆盖@Configuration
类中的默认localvalidatorybean
:
@配置
公共类MyValidationConfig
{
@豆子
公共静态LocalValidatoryFactoryBean myValidatorFactory()
{
LocalValidatorFactoryBean factoryBean=新的LocalValidatorFactoryBean();
setMessageInterpolator(messageInterpolator());
返回factoryBean;
}
专用静态MessageInterpolator MessageInterpolator()
{
返回新的MyResourceBundleMessageInterpolator();
}
}