Spring-Boot如何正确注入javax.validation.Validator

Spring-Boot如何正确注入javax.validation.Validator,第1张

Spring-Boot如何正确注入javax.validation.Validator

您需要声明一个如下类型的bean

LocalValidatorFactoryBean

<bean id="validator"    />

以XML或

@Beanpublic javax.validation.Validator localValidatorFactoryBean() {   return new LocalValidatorFactoryBean();}

在Java Config中。

编辑:

重要的是要了解,如果正在使用JPA并由Hibernate支持JPA,则Hibernate将尝试自动验证您的Bean和Spring框架。这可能会导致问题,

javax.validation.ValidationException:HV000064: Unable to instantiate ConstraintValidator
因为Hibernate不了解Spring
Context,据我所知,甚至使用LocalValidatorFactoryBean,也无法告诉它。这将导致验证程序运行两次。一个正确,一旦失败。

为了禁用默认的Hibernate ORM验证,需要为Spring设置以下属性:

spring.jpa.properties.javax.persistence.validation.mode=none

我更新了这个示例,因为这是我一遍又一遍地发现未注入Validator的示例,事实证明这是我面临的问题。

Spring文档的这一部分包含所有详细信息



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5600754.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存