重庆网站建设公司那好,网站建设及推广人员,五一模板网,桂林旅游网站制作公司父文章 入参校验产品化 schema_个人渣记录仅为自己搜索用的博客-CSDN博客
一般都是通过 注解进行校验, 很少看到 通过配置来进行校验.
自己再通过谷歌找到了官网文档hibernate validator constraint from xml
Hibernate Validator 8.0.0.Final - Jakarta Bean Validation Re…父文章 入参校验产品化 schema_个人渣记录仅为自己搜索用的博客-CSDN博客
一般都是通过 注解进行校验, 很少看到 通过配置来进行校验.
自己再通过谷歌找到了官网文档hibernate validator constraint from xml
Hibernate Validator 8.0.0.Final - Jakarta Bean Validation Reference Implementation: Reference Guide Q : 动态 java 约束写在 文本中, 读取文本, 对bean进行校验
A : 如下 dependency groupIdorg.hibernate.validator/groupId artifactIdhibernate-validator/artifactId version8.0.0.Final/version /dependency dependency groupIdjakarta.validation/groupId artifactIdjakarta.validation-api/artifactId version3.0.2/version /dependency 在 Java 中可以使用 Hibernate Validator 的编程式 API 来读取约束定义然后使用这些约束定义对 Java Bean 进行校验。这种方式可以将约束定义写在文本文件中然后在运行时动态加载这些约束定义。
以下是一个使用编程式 API 进行约束校验的示例
public class Config {private String name;private int age;// getters and setters
}public class ConfigValidator {public static void main(String[] args) throws IOException {// Load constraint definitions from text fileInputStream inputStream new FileInputStream(constraints.txt);String constraints new String(inputStream.readAllBytes());// Parse constraint definitions using Hibernate ValidatorValidatorFactory factory Validation.byDefaultProvider().configure().addMapping(new ByteArrayInputStream(constraints.getBytes())).buildValidatorFactory();Validator validator factory.getValidator();// Validate configuration using Hibernate ValidatorConfig config new Config();config.setName(John);config.setAge(17);SetConstraintViolationConfig violations validator.validate(config);// Print validation errorsif (!violations.isEmpty()) {for (ConstraintViolationConfig violation : violations) {System.out.println(violation.getMessage());}}}
}https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#_adding_mapping_streams
在这个示例中我们首先定义了一个 Config 类它包含了一些属性。然后我们创建了一个 ConfigValidator 类它读取了一个名为 constraints.txt 的文本文件并使用 Hibernate Validator 将其解析为约束定义。接下来我们使用这些约束定义对 Config 对象进行验证并将验证结果存储在 ConstraintViolation 对象的集合中。如果存在验证错误则可以遍历 ConstraintViolation 对象并输出错误消息。
在 constraints.txt 文件中我们可以使用 Hibernate Validator 的约束定义语言来定义约束。例如以下是一个 constraints.txt 文件的示例
?xml version1.0 encodingUTF-8?
bean-validation-config xmlnshttp://jboss.org/xml/ns/javax/validation/configurationxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://jboss.org/xml/ns/javax/validation/configuration validation-configuration-2.0.xsdconstraint-mappingsbean classcom.example.Configfield namenameconstraint annotationjavax.validation.constraints.NotNull//fieldfield nameageconstraint annotationjavax.validation.constraints.Minelement namevalue18/element/constraint/field/bean/constraint-mappings
/bean-validation-config在这个示例中我们使用 XML 格式定义了一个约束映射它包含了一个 Config 类的约束定义。我们使用 field 元素来指定要验证的属性然后使用 constraint 元素来指定要应用的约束。在这个例子中我们使用了 NotNull 和 Min(18) 两个约束。