Java实现入参数据批量数据校验详解
作者:Xiao5xiao122
在业务处理中一般入参是单条数据,这样数据校验比较容易,但是这种方法对于集合数据的校验不适用,下面我们就来看看如何对入参数据进行批量数据校验吧
入参数据批量数据校验
在业务处理中一般入参是单条数据,这样数据校验比较容易,直接用注解标注对应的校验用注解就可以了,但是这种方法对于集合数据的校验不适用。但是业务中也有可能是传入的批量数据,还要校验每个字段值是否合规。我搜过其他猿友写的批量校验的逻辑,感觉很繁琐,所以我记录一下我的我感觉比较简便的方法,代码量减少,还能满足校验要求。废话不多说,看代码。
package com.sydata.zt.common.utils; import javax.validation.Valid; import java.util.*; /** * 能被注解@Valid校验的List * @author XX * @date 2023-12-25 */ public class ValidableList<E> implements List<E> { @Valid private List<E> list; public ValidableList() { this.list = new ArrayList<>(); } public ValidableList(List<E> list) { this.list = list; } public List<E> getList() { return list; } public void setList(List<E> list) { this.list = list; } @Override public int size() { return list.size(); } @Override public boolean isEmpty() { return list.isEmpty(); } @Override public boolean contains(Object o) { return list.contains(o); } @Override public Iterator<E> iterator() { return list.iterator(); } @Override public Object[] toArray() { return list.toArray(); } @Override public <T> T[] toArray(T[] a) { return list.toArray(a); } @Override public boolean add(E e) { return list.add(e); } @Override public boolean remove(Object o) { return list.remove(o); } @Override public boolean containsAll(Collection<?> c) { return list.contains(c); } @Override public boolean addAll(Collection<? extends E> c) { return list.addAll(c); } @Override public boolean addAll(int index, Collection<? extends E> c) { return list.addAll(index, c); } @Override public boolean removeAll(Collection<?> c) { return list.removeAll(c); } @Override public boolean retainAll(Collection<?> c) { return list.retainAll(c); } @Override public void clear() { list.clear(); } @Override public E get(int index) { return list.get(index); } @Override public E set(int index, E element) { return list.set(index, element); } @Override public void add(int index, E element) { list.add(index, element); } @Override public E remove(int index) { return list.remove(index); } @Override public int indexOf(Object o) { return list.indexOf(o); } @Override public int lastIndexOf(Object o) { return list.lastIndexOf(o); } @Override public ListIterator<E> listIterator() { return list.listIterator(); } @Override public ListIterator<E> listIterator(int index) { return list.listIterator(index); } @Override public List<E> subList(int fromIndex, int toIndex) { return list.subList(fromIndex, toIndex); } }
具体使用方法就很简单了,直接按照单个校验的方式添加注解,修改一下接收的集合就可以了
这样,批量校验的功能就可以了并且可以被复用。
到此这篇关于Java实现入参数据批量数据校验详解的文章就介绍到这了,更多相关Java数据校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!