怎么定义一套完成标准的JAVA枚举类型
一、背景
在java代码中,接口返回有各种各样的状态,比如400 401 200 500 403等常见的http状态码,也有我们自定义的很多业务状态码。如果系统比较复杂,制定一套完整的标准的状态码是非常有必要的,这样比较方面BUG排查。
二、枚举类
在Java中,枚举类型是一种特殊的类,它包含了一组常量。Java 枚举是一种数据类型,它包含固定数量的常量。枚举在Java中被视为数据类型,你可以使用它们来创建枚举类型的变量,然后使用那些变量等。
如我们可以对状态码进行规划
10001-19999 定义为参数相关的状态码
20001-29999 定义为用户模块相关的状态码
。。。。。
等等
public enum ResponseCode {/* 公共状态码 */SUCCESS(200, "成功"),FAILED(400, "失败"),UNAUTHORIZED(401, "签名错误"),NOT_FOUND(404, "此接口不存在"),INTERNAL_SERVER_ERROR(500, "系统繁忙,请稍后再试"),/* 参数错误:10001-19999 */PARAM_IS_INVALID(10001, "参数无效"),PARAM_IS_BLANK(10002, "参数为空"),PARAM_TYPE_BIND_ERROR(10003, "参数类型错误"),PARAM_NOT_COMPLETE(10004, "参数缺失"),/* 用户错误:20001-29999*/USER_NOT_LOGGED_IN(20001, "用户未登录"),USER_LOGIN_ERROR(20002, "账号不存在或密码错误"),USER_ACCOUNT_FORBIDDEN(20003, "账号已被禁用"),USER_NOT_EXIST(20004, "用户不存在"),USER_HAS_EXISTED(20005, "用户已存在"),LOGIN_CREDENTIAL_EXISTED(20006, "凭证已存在"),//微信授权 错误码WEIXIN_ENCRYPT_ERROR(30001,"企业微信授权解密失败"),/*权限相关:40001-49999 */NO_PERMISS(40001,"无权限访问"),IS_LIMIT_ACC(40002,"访问过于频繁限制访问"),/* 业务错误:50001-59999 */WX_QRCODE_NULL(50001,"微信二维码获取内容不可用"),/* 业务错误:60001-69999 */XSS_CODE_ERROR(60001,"存在xss 恶意攻击脚本");private Integer code;private String message;ResponseCode(int code, String message) {this.code = code;this.message = message;}public int getCode() {return code;}public String getMessage() {return message;}
}
三、http状态码
HTTP状态码是用于表示HTTP请求的处理结果的数字代码。HTTP状态码由三部分组成:状态码的第一个数字表示响应的类别,中间的数字表示具体状态,最后一个数字提供更详细的信息。
常见的HTTP状态码包括:
-
HTTP状态码分为5类,每一类有不同的数字和含义。
- 1xx:表示收到请求并继续处理。这类状态码是信息响应码,通知接收者请求已成功开始处理。例如:
- 100 Continue:请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
- 101 Switching Protocols:请求者已要求服务器切换协议,服务器已确认并准备切换。
- 102 Processing:由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。
- 2xx:表示成功处理了请求。这类状态码是成功响应码,表示服务器已成功处理了请求。例如:
- 200 OK:请求已正常处理。
- 201 Created:请求成功且服务器已创建了新的资源。
- 202 Accepted:请求已被服务器接受,但尚未开始处理。
- 203 Non-Authoritative Information:已收到请求,但接下来的信息并不来自服务器。
- 204 No Content:请求处理成功,但没有任何资源可以返回给客户端。
- 205 Reset Content:请求已成功,但请求者应重置浏览器。
- 206 Partial Content:对资源某一部分的请求,服务器已执行了部分GET请求。
- 3xx:要完成请求必须进一步执行的动作。这类状态码是重定向响应码,表示需要采取进一步的动作才能完成请求。例如:
- 300 Multiple Choices:多重选择。客户端可选择多个选项,因此服务器会给出一个列表让客户端进行选择。
- 301 Moved Permanently:资源的URI已更新,应更新书签引用。永久性重定向,请求的资源已经被分配了新的URI,以后应使用资源现在所指的URI。
- 302 Found:资源的URI已临时定位到其他位置。临时性重定向,客户端应继续使用当前的位置。
- 303 See Other:资源的URI已更新,应临时按新的URI访问。临时性重定向,客户端应临时使用新的URI。
- 304 Not Modified:客户端发送了请求,但服务器未进行修改。这表示缓存的版本仍然是有效的,客户端可以直接从缓存中获取响应。
- 305 Use Proxy:必须通过代理服务器访问资源。这表示服务器不是直接的HTTP代理服务器,但客户端应使用指定的代理服务器来访问该资源。
- 4xx:请求包含语法错误或者无法完成请求。这类状态码是客户端错误响应码,表示客户端发送的请求有错误或无法被服务器理解。例如:
- 400 Bad Request:请求格式错误或无法理解。
- 401 Unauthorized:没有授权访问请求的资源。这可能是由于缺乏认证信息或客户端未被授权访问该资源。
- 403 Forbidden:服务器理解请求客户端的意图,但是拒绝执行它。这可能是由于权限限制或访问控制导致的。
- 404 Not Found:服务器无法找到客户端请求的资源。这可能是由于资源不存在或URL错误导致的。
- 5xx:服务器在处理请求的过程中发生了错误。这类状态码是服务器错误响应码
相关文章:
怎么定义一套完成标准的JAVA枚举类型
一、背景 在java代码中,接口返回有各种各样的状态,比如400 401 200 500 403等常见的http状态码,也有我们自定义的很多业务状态码。如果系统比较复杂,制定一套完整的标准的状态码是非常有必要的,这样比较方面BUG排查。…...
Apache Seatunnel本地源码构建编译运行调试
Apache Seatunnel本地源码构建编译运行调试 文章目录 1. 环境准备1.1 Java环境1.2 Maven1.3 IDEA1.4 Docker环境1.5 Mysql8.0.281.6 其它环境准备 2. 源码包下载3. idea项目配置3.1 项目导入3.2 maven配置3.3 项目JDK配置3.4 项目启动参数配置3.4.1 seatunnel项目启动参数配置3…...
构建高效持久层:深度解析 MyBatis-Plus(02)
目录 引言1. 逻辑删除1.1 概述1.2 逻辑删除的优势1.3.为什么使用逻辑删除1.4 综合案例 2. 乐观锁和悲观锁2.1.什么是乐观锁和悲观锁2.2.乐观锁和悲观锁的区别2.3.综合案例 3. 分页插件总结 引言 在现代软件开发中,数据库操作是不可或缺的一环。为了提高系统的性能、…...
Gitlab仓库推送到Gitee仓库的一种思路
文章目录 Gitlab仓库推送到Gitee仓库的一种思路1、创建Gitee的ssh公钥(默认已有Gitlab的ssh公钥)2、添加Gitlab远程仓库地址3、添加Gitee远程仓库地址4、拉取Gitlab远程仓库指定分支到本地仓库指定分支(以test分支为例)5、推送本地…...
快速能访问服务器的文件
1、背景 访问ubuntu上的文件 2、方法 python3 -m http.server 8081 --directory /home/ NAS 共享访问协议 — NFS、SMB、FTP、WebDAV 各有何优势?http://1 Ubuntu 搭建文件服务器(Nginx)...
Diary26-Vue综合案例1-书籍购物车
Vue综合案例1-书籍购物车 案例要求: 代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpor…...
【EasyExcel实践】万能导出,一个接口导出多张表以及任意字段(可指定字段顺序)-简化升级版
文章目录 前言正文一、项目简介二、核心代码2.1 pom.xml 依赖配置2.2 ExcelHeadMapFactory2.3 ExcelDataLinkedHashMap2.4 自定义注解 ExcelExportBean2.5 自定义注解 ExcelColumnTitle2.6 建造器接口 Builder2.7 表格工具类 ExcelUtils2.8 GsonUtil2.9 模版类 ExportDynamicCo…...
解决 Hive 外部表分隔符问题的实用指南
简介: 在使用 Hive 外部表时,分隔符设置不当可能导致数据导入和查询过程中的问题。本文将详细介绍如何解决在 Hive 外部表中正确设置分隔符的步骤。 问题描述: 在使用Hive外部表时,可能会遇到分隔符问题。这主要是因为Hive在读…...
一文学会 Apache Zeppelin
Zeppelin资料 Zeppelin项目信息 Zeppelin官网 http://zeppelin.apache.org/Zeppelin源码地址 https://github.com/apache/zeppelinZeppelin JIRA: https://issues.apache.org/jira/projects/ZEPPELIN/summaryZeppelin文档 Flink on Zeppelin 文档集中地 https://www.yuque.co…...
ROS学习笔记(七)---参数服务器
ROS学习笔记文章目录 01. ROS学习笔记(一)—Linux安装VScode 02. ROS学习笔记(二)—使用 VScode 开发 ROS 的Python程序(简例) 03. ROS学习笔记(三)—好用的终端Terminator 04. ROS学习笔记(四)—使用 VScode 启动launch文件运行多个节点 05. ROS学习笔…...
【RTOS学习】源码分析(信号量和互斥量 事件组 任务通知)
🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 目录 🍓信号量和互斥量🍅创建🍅Take🍅Give &#x…...
1316:【例4.6】数的计数(Noip2001) 代码+解析
1316:【例4.6】数的计数(Noip2001) 【题目描述】 我们要求找出具有下列性质数的个数(包括输入的自然数n )。先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理:不作任何处理;在它的左边加上一…...
征集倒计时 | 2023年卓越影响力榜单-第四届中国产业创新奖报名即将截止
第四届「ISIG中国产业智能大会」将于2024年3月16日在上海举办。2024 ISIG 以“与科技共赢,与产业共进”为主题,共设立RPA超自动化、 低代码、AIGC大模型、流程挖掘四大主题峰会。届时,大会组委会将颁发2023年度卓越影响力榜单—第四届中国产业…...
vue的语法模板与数据绑定的说明
vue的两大模板语法: 1.插值语法 2.指定语法 插值语法:{{}} 功能:用于解析标签体的内容 写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性 指定语法: 功能:用于解析标签(包括:标签属性、标…...
VueCron使用方法
1)什么是vueCron Vue Cron 是基于 Vue.js 的定时任务管理组件,它提供了一种简单易用的方式来设定和管理定时任务。Vue Cron 提供了一个类似于 Linux crontab 的界面,用户可以通过它来创建、编辑和删除定时任务。 2)安装依赖及应…...
SpringBlade export-user SQL 注入漏洞复现
0x01 产品简介 SpringBlade 是一个由商业级项目升级优化而来的 SpringCloud 分布式微服务架构、SpringBoot 单体式微服务架构并存的综合型项目。 0x02 漏洞概述 SpringBlade v3.2.0 及之前版本框架后台 export-user 路径存在安全漏洞,攻击者利用该漏洞可通过组件customSqlS…...
结构体的一些补充知识
1、结构体后面分号前面的名字是什么意思。 在C中,结构体的定义格式为: struct <结构体名> {// 成员变量和成员函数 };在这个定义中,<结构体名>就是结构体的名称,而这个名称位于结构体定义的末尾,分号之前…...
20V升26V 600mA升压型LED驱动芯片,PWM调光芯片-AH1160
AH1160是一个功能强大的升压型LED驱动芯片,专为需要精确控制LED亮度的PWM调光应用而设计。它可将20V输入电压升压至26V,同时提供稳定的600mA电流输出,适用于各种LED照明设备。 芯片特点: 1. 输入电压范围:AH1160可在…...
如何在Go中制作HTTP服务器
引言 许多开发人员至少会花一些时间创建服务器,以便在互联网上分发内容。HTTP (Hypertext Transfer Protocol,超文本传输协议)提供了大部分这些内容,无论是请求一张猫的图片还是请求加载你正在阅读的教程。Go标准库为创建HTTP服务器以提供web内容或向这些服务器发出HTTP请求…...
Linux笔记---系统信息
🍎个人博客:个人主页 🏆个人专栏:Linux学习 ⛳️ 功不唐捐,玉汝于成 目录 前言 命令 1. uname - 显示系统信息 2. hostname - 显示或设置系统主机名 3. top - 显示系统资源使用情况 4. df - 显示磁盘空间使用情…...
最新版android stuido加上namespace
每个 Android 模块都有一个命名空间,此命名空间用作其生成的 命名空间由模块的 build.gradle 文件中的 namespace 属性定义,如以下代码段所示。namespace 最初会设为您在创建项目时选择的软件包名称。 Kotlin Groovy android {namespace "com.ex…...
Wireshark基础及捕获技巧
第一章:Wireshark基础及捕获技巧 1.1 Wireshark基础知识回顾 1.2 高级捕获技巧:过滤器和捕获选项 1.3 Wireshark与其他抓包工具的比较 第二章:网络协议分析 2.1 网络协议分析:TCP、UDP、ICMP等 2.2 高级协议分析:HTTP…...
Windows下Navicat15.0连接Oracle11g报ORA-28547解决
目录 背景 一、相关环境 1、操作系统 2、Navicat版本 3、ORACLE连接 4、默认连接 二、问题分析 1、默认dll配置 三、修改配置 1、下载匹配的client 2、替换相应目录 总结 背景 最近在项目中需要使用Oracle数据库,当前很多应用系统的数据都存储在MySQL或者Pos…...
21 Vue3中使用v-for遍历对象数组
概述 使用v-for遍历对象数组在真实的开发中也属于非常常见的用法,需要重点掌握。 因为目前流行的是前后端分离开发,在前后端分离开发中,最常需要处理的就是对象数组类型的数据了。 比如,将员工信息渲染到表格中。 这节课我们就…...
深入理解Java自定义异常与全局异常处理 @RestControllerAdvice
异常主要是包括编译时的异常和运行时的异常。编译时的异常可以通过捕获异常获取,运行时候的异常主要是通过代码规范,或者测试。 Spring Boot提供了两种异常处理方式来统一处理和维护异常信息。 第一种方式是使用RestControllerAdvice注解与ExceptionHand…...
h5页面跳转微信小程序(最简单的方法|URL Scheme)
文章目录 导文实现获取 URL Scheme加密 URL Scheme获取方式拼接参数 明文 URL Scheme获取方式 实际项目展示:频率限制注意事项开放范围示例代码包 导文 H5页面跳转微信小程序的需求是普遍存在的。由于微信小程序是一种只能在微信内部访问的应用程序,而H5…...
智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.非洲秃鹫算法4.实验参数设定5.算法结果6.…...
持续集成交付CICD:Jenkins使用GitLab共享库实现前端项目镜像构建
目录 一、实验 1. GitLab修改项目文件与Harbor环境确认 2.Jenkins使用GitLab共享库实现前端项目镜像构建 3.优化CI流水线封装Harbor账户密码 4.Jenkins再次使用GitLab共享库实现前端项目镜像构建 一、实验 1. GitLab修改项目文件与Harbor环境确认 (1…...
SQL server 数据库 SQL语句高级用法
1、表的高级查询 use student select * from stuinfo1 -- 使用 in 的子查询 select * from stuinfo where stu_age in ( select stu_age from stuinfo where cla_id 12345 ) select * from stuinfo where stu_age in ( 19 , 20 , 21 , 25 , 23 , 1…...
wavlink 路由器 多处前台RCE漏洞复现
0x01 产品简介 WAVLINK是中国睿因科技(WAVLINK)公司开发的一款路由器。 0x02 漏洞概述 WAVLINK路由器mesh.cgi、nightled.cgi、live-api.cgi等接口处存在命令执行漏洞,攻击者可通过该漏洞获取服务器权限。包含型号WN530HG4、WN531G3、WN572HG3、WN535G3、WN575A4等。 0x…...
网站建设wuliankj/网站优化公司哪家效果好
1.SQL前面加 EXPLAIN 定位到sql级别 各个属性的含义 id select查询的序列号 select_type select查询的类型,主要是区别普通查询和联合查询、子查询之类的复杂查询。 table 输出的行所引用的表。 type 联合查询所使用的类型。 type显示的是访问类型,是较为…...
成品超市网站/seo排名查询软件
我们打开昨天已经创建好的项目myself.pro.注意保存的项目路径不能含有中文.接下来我们继续来学习,看如何进行可视化编程. 双点你的工程管理窗口中界面文件mainwindow.ui.双点后如图所示. 控件组窗口包含所有控件(控件就是一个叫法而已,例如按钮,文本框,标签等都被称为控件),使…...
wordpress首页添加价格/软文写作公司
假设需要交换的两个数为 a, b 使用中间变量 ------------- | a | b | t | ------------- 使用一个中间变量来做媒介来交换,设中间变量为t;则通过 a -> t; b -> a; t -> b 完成了交换,代码如下 var t a; a b; b t; 不使用中间变量…...
南阳网站建设页面/网络推广代运营公司
道口的经验贴可谓琳琅满目,每一篇文章都是考上道口的学长(学姐)的肺腑之言,造福了学弟学妹,在此对他们表示感谢! 为了方便大家的索引,现整理如下:(更新) 08…...
网站开发公司基础产品/网络推广怎么找客户资源
题目解决代码及点评 /************************************************************************/ /* 81. SHELL排序程序。 该方法的特征是:一个元素与它间隔…...
长沙住建信息中心网站/能够免费换友链的平台
数据结构是:数组链表红黑树 1、putVal 插入值:得到数组下标索引值, 如果数据下标处为null,则放入该位置, 如果不为空,判断key是否相等, 如果相等,则…...