欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > Springboot List集合的校验方式

Springboot List集合的校验方式

2025/3/21 3:32:21 来源:https://blog.csdn.net/johnrui/article/details/146371630  浏览:    关键词:Springboot List集合的校验方式

pom.xml 引入

	<dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>6.2.0.Final</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>

校验实体类注解

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown=true)
public class ThirdAlarmInfoRequest {/*** 报警id*/@NotNull(message = "报警id为空",groups = {Add.class})private Long alarmId;/*** 报警时间*/@NotNull(message = "报警时间为空",groups = {Add.class})private Date alarmTime;/*** 报警州市*/@org.hibernate.validator.constraints.NotBlank(message = "报警州市为空",groups = {Add.class})
//    @NotBlank(message = "报警州市为空",groups = {Add.class})private String alarmCity;

接口校验方式一

    @PostMapping("/batchAdd")public RestResult batchAdd(@Validated(Add.class)  @RequestBody ValidList<ThirdAlarmInfoRequest> alarmRequest) throws BusinessException {logger.info("thirdAlarmInfoController.batchAdd.param:{}", JSONObject.toJSONString(alarmRequest));Long rows = thirdAlarmInfoService.batchAdd(alarmRequest);return RestResult.createSuccessfulResult(rows);}
 import javax.validation.Valid;
import java.util.*;/*** @author* @describe:* @date 2025/3/19*/
public class ValidList <E> implements List<E> {@Validprivate List<E> list = new LinkedList<>();@Overridepublic int size() {return list.size();}@Overridepublic boolean isEmpty() {return list.isEmpty();}@Overridepublic boolean contains(Object o) {return list.contains(o);}@Overridepublic Iterator<E> iterator() {return list.iterator();}@Overridepublic Object[] toArray() {return list.toArray();}@Overridepublic <T> T[] toArray(T[] a) {return list.toArray(a);}@Overridepublic boolean add(E e) {return list.add(e);}@Overridepublic boolean remove(Object o) {return list.remove(o);}@Overridepublic boolean containsAll(Collection<?> c) {return list.containsAll(c);}@Overridepublic boolean addAll(Collection<? extends E> c) {return list.addAll(c);}@Overridepublic boolean addAll(int index, Collection<? extends E> c) {return list.addAll(index, c);}@Overridepublic boolean removeAll(Collection<?> c) {return list.removeAll(c);}@Overridepublic boolean retainAll(Collection<?> c) {return list.retainAll(c);}@Overridepublic void clear() {list.clear();}@Overridepublic E get(int index) {return list.get(index);}@Overridepublic E set(int index, E element) {return list.set(index, element);}@Overridepublic void add(int index, E element) {list.add(index, element);}@Overridepublic E remove(int index) {return list.remove(index);}@Overridepublic int indexOf(Object o) {return list.indexOf(o);}@Overridepublic int lastIndexOf(Object o) {return list.lastIndexOf(o);}@Overridepublic ListIterator<E> listIterator() {return list.listIterator();}@Overridepublic ListIterator<E> listIterator(int index) {return list.listIterator(index);}@Overridepublic List<E> subList(int fromIndex, int toIndex) {return list.subList(fromIndex, toIndex);}public List<E> getList() {return list;}public void setList(List<E> list) {this.list = list;}}

接口校验方式二

	    /*** 批量新增三方报警数据*/@PostMapping("/batchAdd")public RestResult batchAdd(@RequestBody List<ThirdAlarmInfoRequest> alarmRequest) throws BusinessException {validateList(alarmRequest, Add.class);logger.info("thirdAlarmInfoController.batchAdd.param:{}", JSONObject.toJSONString(alarmRequest));Long rows = thirdAlarmInfoService.batchAdd(alarmRequest);return RestResult.createSuccessfulResult(rows);}
    /*** 校验List,逐个校验每个元素** @param list 校验的参数* @param clazz 检验分组 可传多个*/public void validateList(List<?> list, Class<?>... clazz) throws BusinessException {StringBuilder errorMessage = new StringBuilder("列表校验失败:");// 遍历列表,逐个校验每个元素for (Object element : list) {// 校验元素本身Set<ConstraintViolation<Object>> violations = validator.validate(element, clazz);// 收集错误信息if (!violations.isEmpty()) {for (ConstraintViolation<Object> violation : violations) {errorMessage.append(violation.getMessage()).append(" ");}}}// 如果有校验错误,抛出异常if (errorMessage.length() > "列表校验失败:".length()) {
//            throw new IllegalArgumentException(errorMessage.toString());throw new BusinessException(ResultCodeEnum.ILLEGAL_PARAM.getCode(),errorMessage.toString());}}

参考:

参数校验:https://blog.csdn.net/Ying_ph/article/details/142938025?fromshare=blogdetail&sharetype=blogdetail&sharerId=142938025&sharerefer=PC&sharesource=johnrui&sharefrom=from_link
参数校验:https://blog.csdn.net/qq_27298687/article/details/104423409
jy: https://blog.csdn.net/weixin_43264955/article/details/144430279?fromshare=blogdetail&sharetype=blogdetail&sharerId=144430279&sharerefer=PC&sharesource=johnrui&sharefrom=from_link

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词