当前位置: 首页 > news >正文

【开端】JAVA Mono<Void>向前端返回没有登陆或登录超时 暂无权限访问信息组装

一、绪论

   JAVA接口返回信息ServerHttpResponse response

等登录接口token过期时需要给前端返回相关状态码和状态信息

二、Mono<Void>向前端返回没有登陆或登录超时 暂无权限访问信息组装

返回Mono对象

public abstract class Mono<T> implements CorePublisher<T>

	/*** 无权限* * @param response* @return*/private Mono<Void> noLogin(ServerHttpResponse response) {log.info("没有登陆或登录超时 暂无权限访问===========");String responseDataStr = JSON.toJSON(ResponseData.error(HttpStatus.UNAUTHORIZED.value(), "The Token has expired")).toString();byte[] bytes = responseDataStr.getBytes(StandardCharsets.UTF_8);DataBuffer buffer = response.bufferFactory().wrap(bytes);response.setStatusCode(HttpStatus.UNAUTHORIZED);return response.writeWith(Mono.just(buffer));}

信息组装。

1、返回ResponseData对象,输出状态码和状态信息:The Token has expired

ResponseData.error(HttpStatus.UNAUTHORIZED.value(), "The Token has expired")

转换成json信息

byte[] bytes = responseDataStr.getBytes(StandardCharsets.UTF_8);

转换成字节流

输出:

response.writeWith(Mono.just(buffer));

公共返回体封装:ResponseData

public class ResponseData<T> implements Serializable {/*** */private static final long serialVersionUID = 7098362967623367826L;/*** 响应状态码*/private Integer code;/*** 响应信息*/private String message;/*** 响应对象*/private T data;/** 是否加密返回参数*/private boolean encrypt;public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public T getData() {return data;}public void setData(T data) {this.data = data;}public static <T> ResponseData<T> success() {return success(ResponseCode.SUCCESS);}public static <T> ResponseData<T> success(ResponseCode code) {return success(code, null);}public static <T> ResponseData<T> success(T object) {return success(ResponseCode.SUCCESS, object);}public static <T> ResponseData<T> success(ResponseCode code, T object) {return success(code.getCode(), code.getMessage(), object);}public static <T> ResponseData<T> success(Integer code, String message, T data) {ResponseData<T> response = new ResponseData<>();response.setCode(code);response.setMessage(message);response.setData(data);return response;}public static <T> ResponseData<T> error() {return error(ResponseCode.FAILED);}public static <T> ResponseData<T> error(ResponseCode code) {return error(code, null);}public static <T> ResponseData<T> error(String message) {return error(ResponseCode.FAILED.getCode(), message, null);}public static <T> ResponseData<T> error(Integer code, String message) {return error(code, message, null);}public static <T> ResponseData<T> error(ResponseCode code, T data) {return error(code.getCode(), code.getMessage(), data);}public static <T> ResponseData<T> error(Integer code, String message, T data) {ResponseData<T> response = new ResponseData<>();response.setCode(code);response.setMessage(message);response.setData(data);return response;}public boolean isEncrypt() {return encrypt;}public void setEncrypt(boolean encrypt) {this.encrypt = encrypt;}
}

相关文章:

【开端】JAVA Mono<Void>向前端返回没有登陆或登录超时 暂无权限访问信息组装

一、绪论 JAVA接口返回信息ServerHttpResponse response 等登录接口token过期时需要给前端返回相关状态码和状态信息 二、Mono<Void>向前端返回没有登陆或登录超时 暂无权限访问信息组装 返回Mono对象 public abstract class Mono<T> implements CorePublisher…...

Python(模块---pandas+matplotlib+pyecharts)

import pandas as pd import matplotlib.pyplot as plt dfpd.read_excel(简易数据.xlsx) # print(df) plt.rcParams[font.sans-serif][SimHei] #设置画布的大小 plt.figure(figsize(10,6)) labelsdf[电影中文名] ydf[国籍] # print(labels) # print(y)# import pandas as pd im…...

解决使用Navicat连接数据库时,打开数据库表很慢的问题

今天使用Navicat连接数据库时&#xff0c;发现不管表中数据多少&#xff0c;打开数据库表非常慢。 解决方法&#xff1a; Navicat - 右键编辑数据库连接 - 高级 - 勾选保持连接间隔 - 输入框设置为20 - 点击确定&#xff01; 参考文章&#xff1a;https://51.ruyo.net/14030.…...

nginx重启报错nginx: [error] invalid PID number

nginx重启报错nginx: [error] invalid PID numb 解决亲测有用 问题描述解决方式 问题描述 编译安装完 nginx 后&#xff0c;启动 nginx时&#xff0c;出现nginx已经在运行&#xff0c;然后输入 ./nginx -s reload时,出现了 nginx: [error] invalid PID number “” in “/us…...

人工智能深度学习系列—深度学习中的相似性追求:Triplet Loss 全解析

人工智能深度学习系列—深度解析&#xff1a;交叉熵损失&#xff08;Cross-Entropy Loss&#xff09;在分类问题中的应用 人工智能深度学习系列—深入解析&#xff1a;均方误差损失&#xff08;MSE Loss&#xff09;在深度学习中的应用与实践 人工智能深度学习系列—深入探索KL…...

26. Hibernate 如何自动生成 SQL 语句

1. 前言 本节和大家一起聊聊 Hibernate 是如何自动生成 SQL 语句的。通过本节的学习&#xff0c;你将了解到&#xff1a; 反射在框架中的重要性&#xff1b;元数据描述对 Hibernate 的重要性。 2. 理想状态 Hibernate 是全自动的 JDBC 框架&#xff0c;能自动构建 SQL 语句、…...

预言机(Oracle machine)

预言机&#xff08;Oracle machine&#xff09;是一个在多个领域中有不同应用和解释的概念。以下是从不同角度对预言机的详细解析&#xff1a; 一、计算复杂度理论与可计算性理论中的预言机 在计算复杂度理论与可计算性理论中&#xff0c;预言机是一种抽象电脑&#xff0c;用…...

55、PHP实现插入排序、二分查找

题目&#xff1a; PHP实现插入排序 描述&#xff1a; 思路:选择一个带插入的元素(假设从第一个开始),分别和已经插入有顺序的元素比较,如果要插入元素比比较元素小,则位置交换 function insertSort($arr){if(!is_array($arr)) return false;//外层循环插入次数for($i1;$i<…...

[Git][分支设计规范]详细讲解

目录 0.概览1.master分支2.release分支3.develop分支4.feature分支5.hotfix分支 0.概览 以下是常用的分支和环境的搭配&#xff0c;可视情况而定不同的策略 分支名称适用环境master主分支生产环境release预发布分支预发布/测试环境develop开发分支开发环境feature需求开发分支本…...

c#中winfrom需要了解的

如何用代码实现label1的字体大小 方法1&#xff1a;在设计视图中设置 打开你的Windows Forms项目。 在设计视图中&#xff0c;选中你想要更改字体大小的Label控件。 在属性窗口中&#xff0c;找到Font属性&#xff0c;点击旁边的省略号(...)。 在弹出的字体对话框中&#x…...

操作系统03:调度算法和文件系统

文章目录 调度算法进程调度算法先来先服务调度算法最短作业优先调度算法高响应比优先调度算法时间片轮转调度算法最高优先级调度算法 内存页面置换算法最佳页面置换算法&#xff08;OPT&#xff09;先进先出置换算法&#xff08;FIFO&#xff09;最近最久未使用的置换算法&…...

大量中国高清地图,必须收藏!!

1、中国人口密度 2、中国干湿区 3、中国温度带和干湿状况 4、中国气温分布 5、中国高陆状况 6、国家级高新技术产业开发区 7、中国工业布局的变化 8、中国旱灾 9、中国常年河与时令河 10、中国科斯塔地貌分布图 11、中国泥石流、滑坡崩塌灾害分布 12、中国森林和主要牧区分布图…...

无线领夹麦克风哪个品牌好,2024年收音麦哪个品牌好一点

在自媒体的浪潮中&#xff0c;内容创作者对于高质量音频的需求日益增长&#xff0c;这直接推动了无线领夹麦克风的兴起。过去&#xff0c;创作者们可能更倾向于使用传统的有线麦克风&#xff0c;但随着技术的进步和市场的变化&#xff0c;无线领夹麦克风以其便携性和灵活性的优…...

如何解决.NET8 类库Debug时,Debug文件夹中不包含Packages中引入的文件

最近在开发中使用了.NET8 Razor类库项目&#xff0c;但是惊讶的发现Debug时&#xff0c;Debug文件夹中不包含Packages中引入的文件&#xff0c;本以为是非常小的问题&#xff0c;但是被困住了竟然足足4个小时。 其实它也本就是个非常非常小的问题…… 只需引入<CopyLocalL…...

域名安全详解

域名安全是网络安全的重要组成部分,涉及多个方面。以下是域名安全的详细介绍: 1. 域名劫持防护 域名劫持是指攻击者通过各种手段,将用户访问的域名解析到非法IP地址上。 防护措施: 使用DNSSEC(域名系统安全扩展)定期监控域名解析记录选择可靠的域名注册商和DNS服务提供…...

使用gstreamer命令行解析RTSP流

1、解析成图片&#xff1a; gst-launch-1.0 rtspsrc locationrtsp://xxxx protocolstcp ! rtph264depay ! h264parse ! queue ! avdec_h264 ! videoconvert ! videorate ! videoscale ! videoconvert ! capsfilter capsvideo/x-raw,formatI420,width640,height480,framerate30…...

如何基于离线包中“事件热点”进行二次开发

720漫游支持基于作品离线包中的自定义按钮/热点-事件进行二次开发来实现与自己业务相关的扩展功能。 开发者可以基于离线包二次开发自定义设置点击热点图标需要执行什么操作&#xff1f;比如打开实时监控画面弹窗&#xff0c;调用自己后台的数据并弹窗显示等。 操作流程&…...

使用继电器实现门电路(1)常用门电路的简化实现

非门INC 常闭x1 反向输入信号 与门AND 常开x1 当A和B都为1时&#xff0c;O才为1&#xff0c;否则O为0。 或门OR 常开x1 当A和B中任意一个为1时&#xff0c;O为1&#xff0c;只有当A和B都为0时&#xff0c;O才为0。 或非门NOR 当A和B中任意一个为1时&#xff0c;O为0&…...

程序员常用单词分类

程序员在编程、软件开发、系统维护等工作中&#xff0c;会频繁使用到一系列特定的单词和术语。这些单词可以根据其功能、用途或所属领域进行分类。以下是一些常见的分类及其示例单词&#xff1a; 1. 数据类型与变量 数据类型&#xff1a;整型&#xff08;Integer&#xff09;…...

c语言11天笔记

函数的概述 函数&#xff1a;实现一定功能的&#xff0c;独立的代码模块。我们的函数一定是先定义&#xff0c;后使用。 使用函数的优势&#xff1a; 1. 我们可以通过函数提供功能给别人使用。当然我们也可以使用别人提供的函数&#xff0c;减少代码量。 2. 借助函数可以减…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...