Java实现入参数据批量数据校验详解
入参数据批量数据校验
在业务处理中一般入参是单条数据,这样数据校验比较容易,直接用注解标注对应的校验用注解就可以了,但是这种方法对于集合数据的校验不适用。但是业务中也有可能是传入的批量数据,还要校验每个字段值是否合规。我搜过其他猿友写的批量校验的逻辑,感觉很繁琐,所以我记录一下我的我感觉比较简便的方法,代码量减少,还能满足校验要求。废话不多说,看代码。
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数据校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring Boot中的@ConfigurationProperties注解解读
在SpringBoot框架中,@ConfigurationProperties注解是处理外部配置的强大工具,它允许开发者将配置文件中的属性自动映射到Java类的字段上,实现配置的集中管理和类型安全,通过定义配置类并指定前缀,可以将配置文件中的属性绑定到Java对象2024-10-10Springboot项目长时间不进行接口操作,提示HikariPool-1警告的解决
这篇文章主要介绍了Springboot项目长时间不进行接口操作,提示HikariPool-1警告的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12
最新评论