springboot 统一结果响应,统一异常处理,统一请求参数非空校验

1、统一结果响应

1.1、ResultCodeEnum

package com.nrxt.nms.mon.pt.cascade.common;import lombok.AllArgsConstructor;
import lombok.Getter;@AllArgsConstructor
@Getter
public enum ResultCodeEnum {SUCCESS(200, "成功"),FAIL(500, "失败");private Integer code;private String msg;}

1.2、Result

package com.nrxt.nms.mon.pt.cascade.common;import lombok.Data;@Data
public class Result<T> {private Integer code;private String msg;private T data;private Integer total;
}

 1.3、ResultVO

package com.nrxt.nms.mon.pt.cascade.common;public class ResultVO {/*** 成功** @return*/public static Result success() {Result result = new Result();result.setCode(ResultCodeEnum.SUCCESS.getCode());result.setMsg(ResultCodeEnum.SUCCESS.getMsg());return result;}/*** 成功返回数据** @param data* @param <T>* @return*/public static <T> Result<T> success(T data) {Result result = new Result();result.setCode(ResultCodeEnum.SUCCESS.getCode());result.setMsg(ResultCodeEnum.SUCCESS.getMsg());result.setData(data);return result;}/*** 成功返回数据,总条数** @param data* @param total* @param <T>* @return*/public static <T> Result<T> success(T data, int total) {Result result = new Result();result.setCode(ResultCodeEnum.SUCCESS.getCode());result.setMsg(ResultCodeEnum.SUCCESS.getMsg());result.setData(data);result.setTotal(total);return result;}/*** 失败** @return*/public static Result fail() {Result result = new Result();result.setCode(ResultCodeEnum.FAIL.getCode());result.setMsg(ResultCodeEnum.FAIL.getMsg());return result;}/*** 失败信息** @param message* @return*/public static Result fail(String message) {Result result = new Result();result.setCode(ResultCodeEnum.FAIL.getCode());result.setMsg(message);return result;}
}

1.4、NmsPtAppController

package com.nrxt.nms.mon.pt.cascade.controller;@RestController
@RequestMapping(value = "/appmonitor/ptcas")
public class NmsPtAppController {private static final Logger logger = Logger.getLogger(NmsPtAppController.class);@ResourceNmsPtAppService nmsPtAppService;/*** 系统级联监控查询** @param nmsAppMonitorQuery* @return*/@PostMapping("/queryFilterAppMonitor")public Result queryFilterAppMonitor(@RequestBody NmsAppMonitorQuery nmsAppMonitorQuery) {List<NmsAppMonitorDO> nmsAppMonitorDOList = nmsPtAppService.queryFilterAppMonitor(nmsAppMonitorQuery);return ResultVO.success(nmsAppMonitorDOList);}
}
 

 

2、统一异常处理

3、统一请求参数非空校验

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/727735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM相关面试题及常用命令参数

JVM常用命令和参数 常用命令&#xff1a; jps&#xff1a;查看进程及其相关信息 jmap&#xff1a;用来生成dump文件和查看堆相关的各类信息的命令 jstat&#xff1a;查看jvm运行时的状态信息 jstack&#xff1a;查看jvm线程快照的命令 jinfo&#xff1a;查看jvm参数和动态修改…

掀桌子了!20万左右的混动SUV,千万别乱选

文 | AUTO芯球 作者 | 雷歌 又掀桌子了&#xff01; 比亚迪秦PLUS掀翻了混动轿车圈的桌子后&#xff0c;又来掀混动SUV的桌子了。 而且掀桌子的还不只一家&#xff0c;比亚迪掀完奇瑞掀。 比亚迪唐DM-i以17.98万起售的价格&#xff0c;掀掉了中型混动SUV的桌子&#xff0c;…

小鹅通前端实习一面

总时长35分钟&#xff0c;自我介绍开始 1.js和c特点上的差异&#xff1b; 2.js数组去重 3.js的数据类型 4.js的引用类型和值类型的差别 5.讲一下js的网络请求 6.对前端三件套和框架的理解 7.一个html文档的结构是怎样的 8.head和body的区别 9.一个页面的加载顺序&#xff08;ht…

[数据结构初阶]队列

鼠鼠我呀&#xff0c;今天写一个基于C语言关于队列的博客&#xff0c;如果有兴趣的读者老爷可以抽空看看&#xff0c;很希望的到各位老爷观点和点评捏&#xff01; 在此今日&#xff0c;也祝各位小姐姐女生节快乐啊&#xff0c;愿笑容依旧灿烂如初阳&#xff0c;勇气与童真永不…

STM32CubeMX学习笔记16--- STM32内部FLASH

1. 内部FLASH简介 之前的文章中介绍过STM32F1利用SPI与外部FLASH&#xff08;W25QXX芯片&#xff09;通讯的例程&#xff0c;本例程将介绍STM32F1的内部FLASH&#xff0c;通过内部FLASH实现数据读写操作。 不同型号的STM32&#xff0c;其FLASH容量也有所不同&#xff0c;最小的…

nexus 简单运维

Nexus介绍 Nexus 是 Sonatype 公司发布的一款仓库&#xff08;Repository&#xff09;管理软件&#xff0c;常用来搭建 Maven 私服&#xff0c;所以也有人将 Nexus 称为“Maven仓库管理器”。 Nexus常用命令 进入安装目录 再进入bin目录 ​ cd /opt/nexus-3.13/nexus-3.13.…

webserve(6) 超时时间

双向链表实现定时器 #ifndef LST_TIMER #define LST_TIMER#include <stdio.h> #include <time.h> #include <arpa/inet.h>#define BUFFER_SIZE 64 class util_timer; // 前向声明// 用户数据结构 struct client_data {sockaddr_in address; // 客户端s…

【java】后序遍历二叉树

采用递归方式实现 节点类 public class Node {private int value;//父节点private Node fNode;//左节点private Node left;//右节点private Node right;//是否已经打印过private boolean sign false;public Node() {}public boolean isSign() {return sign;}public void setS…

未来AI发展趋势

引言 如何实现一个乌托邦式的社会呢&#xff1f;如果直接将人类社会分为两个阵营&#xff0c;一个是以旧人类为首的阵营&#xff0c;一个是以AI抚养的新人类阵营&#xff0c;其中新人类阵营的所有资源皆由旧人类阵营提供&#xff0c;且旧人类阵营的人类都经过了化学阉割无法生…

pthread_cond_wait内部逻辑

简单介绍 引入 pthread_cond_wait 函数的概念&#xff0c;它是 POSIX 线程库中用于条件变量等待的函数。一下是此函数运行时内部逻辑&#xff1a; 1. pthread_cond_wait 函数的调用过程 描述当程序调用 pthread_cond_wait 函数时会发生什么。包括将执行流放入 PCB 等待队列、解…

14:00面试,15:00就出来了,问的问题过于变态了。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到2月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

静态时序分析:典型与非典型时序路径的约束详解(一)

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 时序路径是静态时序分析中的一个重要概念&#xff0c;了解时序路径能帮助设计者更好地编写SDC脚本&#xff0c;本文旨在详细介绍时序路径相关内容。 首先给出时序…

深度Q网络(Deep Q-Network, DQN)

深度Q网络(Deep Q-Network, DQN)是一种结合了深度学习和强化学习的方法,用于解决序列决策问题。它是一种端到端的学习方法,可以直接从原始输入(如像素)中学习如何映射到动作值(即策略),而不需要任何手工特征工程。DQN最初由DeepMind在2015年提出,并在多款Atari 2600游…

代码随想录算法训练营day40|343. 整数拆分、96.不同的二叉搜索树

343. 整数拆分 代码随想录 视频讲解&#xff1a;动态规划&#xff0c;本题关键在于理解递推公式&#xff01;| LeetCode&#xff1a;343. 整数拆分_哔哩哔哩_bilibili 1.确定dp[i]的含义&#xff1a;正整数i拆分得到的最大乘积 2.确定递推公式&#xff1a;dp[i] max(dp[i], …

Unity角色动画变成半跪\半蹲\下沉 的问题

导入的人物动画发生如图形态 解决方法&#xff1a;找到动画模型&#xff0c;Rig - AnimationType 改为Humanoid &#xff0c;然后Apply一下

高效加载大文件(pandas+dask)

一、仅用pd加载大文件(iterator、chunksize) 要使用Pandas进行高效加载超大文件&#xff0c;我们通常会利用其内置的分块&#xff08;chunk&#xff09;处理功能。不过&#xff0c;请注意&#xff0c;Pandas本身并不支持多线程读取文件&#xff1b;它更倾向于单线程中进行块处理…

千云GPS平台 -在k8s上部署Mysql

构建xtrabackup docker build -t registry.cn-zhangjiakou.aliyuncs.com/qy566/xtrabackup:8.0.34 --rm .部署进度 你可以通过运行以下命令查看启动进度: kubectl get pods -l app=mysql -n mysql-db --watch 测试mysql 发送客户端请求写入数据kubectl run mysql-client --…

解决cs不能生成Linux木马的问题

要解决的问题&#xff1a;众所周知&#xff0c;msf上面的shell或者是其他的shell想反弹给cs默认情况下是只支持windows的&#xff0c;因为cs的监听模块默认没有linux的&#xff0c;但是有些主机就是用linux搭建的&#xff0c;这可怎么办呢。就要用到一个插件CrossC2。 下载插件…

经典算法之桶排序

桶排序(Bucket Sort)是一种将待排序数据分到几个有序的桶里,每个桶里的数据再分别排序的排序算法。桶排序适用于数据分布均匀且范围有限的场景。 概念 桶排序的工作原理是将输入数据分布到有限数量的桶里。每个桶再个别排序(有可能使用其他排序算法)。桶排序不需要比较数…

实操keepalived(高可用)+Nginx(四层代理+七层代理),实现高可用、负载均衡以及动静分离

一 vrrp技术 VRRP 相关术语 VRRP能够在不改变组网的情况下&#xff0c;将多台路由器虚拟成一个虚拟路由器&#xff0c;i通过配置虚拟路由器的IP地址为默认网关&#xff0c;实现网关的备份。 协议版本: VRRPv2 (常用) 和VRRPv3:0 VRRPv2仅适用于IPv4网络&#xff0c;VRRPv3适用…