hibernate-validator的用法,需要引入哪些依赖。类文件具有错误的版本 55.0, 应为 52.0

博客介绍了Java使用Hibernate的相关操作。首先提到在mvn仓库引入依赖时,若程序用jdk1.8,引入高版本依赖会出现jar包依赖的jdk高于程序依赖的jdk的错误,引入低版本的hibernate - validator可解决。还包括创建实体、API路由,用postman模拟请求及验证测试结果等内容。

1.引入依赖
mvn仓库https://search.maven.org/

			 <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.2.5.Final</version>
        </dependency>

这里需要注意,如果程序用jdk1.8,但是引入的依赖版本过高,会出现jar包依赖的jdk高于程序依赖的jdk的错误,如下所示:
类文件具有错误的版本 55.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中。
引入低版本的hibernate-validator即可解决该问题。详情
2.创建实体

package com.yangjunbo.helloword.pojo;


import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.*;

public class User {
    @NotBlank(message = "姓名不允许为空!")
    @Length(min = 2,max = 10,message = "姓名长度错误,姓名长度2-10!")
    private String name;

    @NotNull(message = "年龄不能为空!")
    @Min(18)
    private int age;


    @NotBlank(message = "地址不能为空!")
    private String address;

    @Pattern(regexp = "^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}$", message = "手机号格式错误")
    private String phone;
    @Email(message = "邮箱格式错误")
    private String email;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

3.创建API路由

@PostMapping(path = "/check")
    public String check(@RequestBody @Valid User user, BindingResult result) {
        String name = user.getName();
        if(result.hasErrors()) {
            List<ObjectError> list = result.getAllErrors();
            for (ObjectError error : list) {
                System.out.println(error.getCode()+ "-" + error.getDefaultMessage());
            }
        }
        return name;
    }

4.使用postman模拟请求
在这里插入图片描述

5.查看控制台输入,验证测试结果
在这里插入图片描述

### hibernate-validator 8.0.0.Final 的作用 `hibernate-validator` 是对 `validation-api` 的再次封装,在开发中经常用于参数校验,特别是在 Spring Boot 的 `spring-boot-starter-web` 中默认应用了该包。它提供了丰富的注解,可用于简化参数合法性的判断,避免使用大量 `if...else...` 语句导致代码臃肿。例如,在 Spring Boot 集成中,可使用 `@Null`、`@NotNull`、`@AssertTrue` 等注解对参数进行校验 [^1][^4]。 以下是一个简单示例: ```java import javax.validation.constraints.NotNull; public class User { @NotNull(message = "用户名不能为 null") private String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } } ``` ### hibernate-validator-annotation-processor 8.0.0.Final 的作用 `hibernate-validator-annotation-processor` 是一个注解处理器,主要用于在编译时处理 `hibernate-validator` 的注解。它可以在编译阶段检查注解的使用是否正确,提前发现潜在的校验问题,避免在运行时才出现错误。同时,它还可以生成一些辅助代码,帮助提高校验的性能和可维护性。 示例:当使用 `@Size` 注解时,如果注解使用不正确,注解处理器会在编译时给出错误提示。 ```java import javax.validation.constraints.Size; public class Product { @Size(min = 1, max = 10, message = "产品名称长度必须在 1 到 10 之间") private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值