Hibernate Validation 是 JSR 303: Bean Validation API 的实现。Spring有它的验证包(它支持JSR 303:Bean Validation API,但不是正确的暗示)。
您可以注意到 这与 不同。org.springframework.validation.Validator
javax.validation.Validator
您可以通过创建一个实现像这里这样简单的类来执行Spring Validation,但是如果您需要遵循JSR 303:Bean Validation API的规范,则可以通过Hibernate Validator进行。org.springframework.validation.Validator
好吧,再详细说一些。
1)如果你想执行(一些)验证,这可以使用弹簧来完成。(下面是一些片段):
import org.springframework.validation.Validator;
class MyService{
Validator validator = new MyValidator();
//perform validation
}
class MyValidator implements Validator{
// Your own validation logic. You may use ValidationUtils to help.
}
2)如果你想执行(JSR 303规范)验证,你需要有像Hibernate这样的提供者。
import javax.validation.Validator;
class MyService{
ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); //Bootstraping
Validator validator = factory.getValidator();
//perform validation
}
上面的引导过程由Spring框架支持。您需要做的就是让春天创造豆子LocalValidatorFactoryBean
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
并注入这种豆子。
import javax.validation.Validator;
@Service
public class MyService {
@Autowired
private Validator validator;
}