基于spring validation多层对象校验

1、第一层对象定义


import java.io.Serializable;

import javax.validation.Valid;

/**   
 * 请求参数
 * @Title: ReqIn.java 
 * @Package com.spring.pro.model 
 * @Description:  
 * @author ybwei  
 * @date 2018年9月18日 下午1:43:26 
 * @version V1.0   
 */
public class ReqIn<T> implements Serializable{

	private static final long serialVersionUID = 25549320423002325L;
	/**
	 * 请求头信息
	 */
	private String head;
	/**
	 * 请求主体信息
	 */
	@Valid
	private T data;
	public String getHead() {
		return head;
	}
	public void setHead(String head) {
		this.head = head;
	}
	public T getData() {
		return data;
	}
	public void setData(T data) {
		this.data = data;
	}
}

2、第二层对象

import java.io.Serializable;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**   
 * @Title: User.java 
 * @Package com.spring.pro.model 
 * @Description:  
 * @author ybwei  
 * @date 2018年9月18日 下午1:46:15 
 * @version V1.0   
 */
public class User implements Serializable{

	private static final long serialVersionUID = 6747944028911495569L;
	private String id;
	@NotBlank
	private String name;
	@NotNull
	private Integer age;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
}

3、Controller层校验使用

import javax.validation.Valid;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import com.alibaba.fastjson.JSON;
import com.spring.pro.model.ReqIn;
import com.spring.pro.model.User;

/**   
 * @Title: UserController.java 
 * @Package com.spring.pro.controller 
 * @Description:  
 * @author ybwei  
 * @date 2018年9月18日 下午1:48:14 
 * @version V1.0   
 */
@RestController
public class UserController {
	private Logger logger=LoggerFactory.getLogger(getClass());

	/**
	 * 校验
	 * @param reqIn
	 * @return
	 * @author ybwei
	 */
	@PostMapping("/valid")
	public HttpStatus valid(@Valid @RequestBody ReqIn<User> reqIn){
		logger.info("reqIn:{}",JSON.toJSONString(reqIn));
		return HttpStatus.OK;
	}
}

猜你喜欢

转载自blog.csdn.net/xixingzhe2/article/details/82757203