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

【工具类:FastJsonRedisSerializer】

工具类:FastJsonRedisSerializer

  • 依赖
  • yml文件
  • FastJsonRedisSerializer.java

依赖

   <!--     主要用于处理 JSON 数据的序列化和反序列化--><!--     序列化:将对象转换为一种可以存储或传输的格式(如 JSON、XML、二进制等)。这样可以将对象的状态保存到文件中,或通过网络发送到其他系统。--><!--     反序列化:将序列化后的数据重新转换为对象的过程。这使得程序能够读取存储的数据并将其恢复为原来的对象形式。--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.53</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

yml文件

  jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8

FastJsonRedisSerializer.java

package com.nnutc.common.utils;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.ParserConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.SerializationException;import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;/*** FastJsonRedisSerializer 是一个使用 FastJSON 库进行对象序列化和反序列化的 RedisSerializer 实现类。** @param <T> 被序列化和反序列化的对象类型*/
public class FastJsonRedisSerializer<T> implements RedisSerializer<T> {public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;private final Class<T> clazz; // 被序列化对象的类类型static {// 启用 FastJSON 的自动类型支持ParserConfig.getGlobalInstance().setAutoTypeSupport(true);}/*** 构造函数,接受一个 Class<T> 类型的参数** @param clazz 被序列化对象的类类型*/public FastJsonRedisSerializer(Class<T> clazz) {this.clazz = clazz;}/*** 序列化方法,将对象转换为字节数组** @param t 被序列化的对象* @return 序列化后的字节数组* @throws SerializationException 如果序列化失败*/@Overridepublic byte[] serialize(T t) throws SerializationException {if (t == null) {return new byte[0]; // 如果对象为 null,返回空字节数组}try {return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);} catch (Exception e) {throw new SerializationException("序列化对象失败: " + t, e);}}/*** 反序列化方法,将字节数组转换为对象** @param bytes 要反序列化的字节数组* @return 反序列化得到的对象* @throws SerializationException 如果反序列化失败*/@Overridepublic T deserialize(byte[] bytes) throws SerializationException {if (bytes == null || bytes.length == 0) {return null; // 如果字节数组为 null 或空,返回 null}try {String json = new String(bytes, DEFAULT_CHARSET); // 将字节数组转换为 JSON 字符串return JSON.parseObject(json, clazz); // 使用 FastJSON 将 JSON 字符串解析为指定类型的对象} catch (Exception e) {throw new SerializationException("反序列化字节数组失败: " + bytes, e);}}
}

相关文章:

【工具类:FastJsonRedisSerializer】

工具类&#xff1a;FastJsonRedisSerializer 依赖yml文件FastJsonRedisSerializer.java 依赖 <!-- 主要用于处理 JSON 数据的序列化和反序列化--><!-- 序列化&#xff1a;将对象转换为一种可以存储或传输的格式&#xff08;如 JSON、XML、二进制等&#xff09…...

Spring Cloud Alibaba-(6)Spring Cloud Gateway【网关】

Spring Cloud Alibaba-&#xff08;1&#xff09;搭建项目环境 Spring Cloud Alibaba-&#xff08;2&#xff09;Nacos【服务注册与发现、配置管理】 Spring Cloud Alibaba-&#xff08;3&#xff09;OpenFeign【服务调用】 Spring Cloud Alibaba-&#xff08;4&#xff09;Sen…...

芯科科技2024年Works With开发者大会登陆上海,物联网和人工智能的变革性融合带来无限精彩

谷歌、三星等生态大厂将带来重磅演讲和圆桌讨论&#xff0c;亦可切身体验多样化无线技术实作 中国&#xff0c;北京 – 2024年9月25日 – 安全、智能无线连接技术领域的全球领导厂商Silicon Labs&#xff08;亦称“芯科科技”&#xff0c;NASDAQ&#xff1a;SLAB&#xff09;&a…...

华为OD机试 - 匿名信(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…...

Python习题 208:将二维列表数组转置

(编码)将以一下二维列表类型的数组 matrix 进行转置(注:不能用内置标准库及三方库)。 matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] 转置结果 [[1, 4, 7], [2, 5, 8], [3, 6, 9]] matrix = [[1, 2, 3],[4...

STM32F407HAL库输出互补PWM波以及死区时间计算

互补PWM波配置 STM32F407VET6的高级定时器TIM1、TIM8可以生成互补的PWM波&#xff0c;用HAL库配置非常方便。 我们使用高级定时器TIM1&#xff0c;选择一个通道&#xff08;我这里选择通道二&#xff09;&#xff0c;然后选择PWM Generation CH2 CH2N。这里N的意思是互补&…...

matlab-对比两张图片的RGB分量的差值并形成直方图

%对比两张图片的RGB分量的差值并形成直方图&#xff0c;改个路径就能用&#xff0c;图片分辨率要一致 close all; clear all; clc; I1imread(E:\test\resources\image\1.jpg); I2imread(E:\test\resources\image\2.jpg); R1I1(:,:,1); G1I1(:,:,2); B1I1(:,:,3); R2I2(:,:,1…...

SpringBoot集成Matlab软件实战

在项目中处理矩阵等复杂数据结构的时候&#xff0c;可以用Matlab程序来运行&#xff0c;其优点是很多的。 专用工具箱和强大的矩阵运算能力&#xff1a;MATLAB 拥有强大的数学工具箱和优化工具箱&#xff0c;适合处理大规模矩阵运算以及水文模型的率定。MATLAB 的 Optimization…...

Java---异常及处理

一.异常 1.概念 程序的非正常执行。高级语言都有异常处理机制&#xff08;C&#xff0c;Java&#xff09; 2.一般处理异常的方法 Scanner sc new Scanner(System.in);System.out.println("请输入一个数字:");String s sc.nextLine();if (s.matches("[0-9]&qu…...

【开源免费】基于SpringBoot+Vue.JS网上购物商城(JAVA毕业设计)

本文项目编号 T 041 &#xff0c;文末自助获取源码 \color{red}{T041&#xff0c;文末自助获取源码} T041&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…...

添加vscode插件C/C++ snippets,快速生成LVGL .c/.h文件模版

文章目录 一、安装插件二、在安装目录下添加c.json和cpp.json文件①在 C:/Users/yourname/AppData/Roaming/Code/User/snippets/ 目录下创建 c.json 并填入如下内容&#xff1a;②在 C:/Users/yourname/AppData/Roaming/Code/User/snippets/ 目录下创建 cpp.json 并填入如下内容…...

ee trade:如何辨别足金真假

足金&#xff0c;顾名思义&#xff0c;就是含金量非常高的黄金&#xff0c;通常指含金量等于或大于 99% 的黄金&#xff0c;俗称 “二九金”。它在金饰界拥有着不可撼动的地位&#xff0c;深受消费者喜爱。那么&#xff0c;如何判断足金的真假&#xff0c;才能买到货真价实的足…...

GCC使用入门

文章目录 GCC简介单个文件编译过程预处理(Preprocessing)编译(Compilation)汇编(Assembly)链接(Linking) 多文件编译过程头文件搜索路径三种不推荐的方法两种推荐的方法 库文件静态库文件创建和使用静态库链接顺序 动态库文件创建和使用动态库 Warning编译选项调试信息(-g)编译…...

CSS3 字体

CSS3 字体 CSS3字体是网页设计和开发中的一个重要方面&#xff0c;它允许设计师使用各种字体来增强网页的视觉效果和用户体验。在本文中&#xff0c;我们将探讨CSS3字体的基本概念、特性、使用方法以及最佳实践。 1. CSS3字体基本概念 CSS3字体是指使用CSS3样式表来控制网页…...

LeetCode题练习与总结:为运算表达式设计优先级--241

一、题目描述 给你一个由数字和运算符组成的字符串 expression &#xff0c;按不同优先级组合数字和运算符&#xff0c;计算并返回所有可能组合的结果。你可以 按任意顺序 返回答案。 生成的测试用例满足其对应输出值符合 32 位整数范围&#xff0c;不同结果的数量不超过 10^…...

金融科技革命:API接口开放平台,畅通金融服务之路

金融科技是近年来蓬勃发展的领域&#xff0c;它利用先进的技术手段来改善和创新金融服务。在金融科技的革命中&#xff0c;API接口开放平台扮演着重要的角色&#xff0c;它通过提供统一的接口服务&#xff0c;让金融机构和其他行业能够更方便地进行数据交换和合作。本文将以挖数…...

Java8后新特性介绍

1.接口私有方法&#xff08;Java9&#xff09; 在Java9之前&#xff0c;interface接口只能定义abstract抽象方法和default默认方法。如果有多个默认方法使用了相同的处理逻辑&#xff0c;那只能写重复代码&#xff0c;或者再单独建个类进行调用。Java9解决了此类问题&#xff…...

Arthas monitor(方法执行监控)

文章目录 二、命令列表2.3 monitor/watch/trace/stack/tt 相关2.3.1 monitor&#xff08;方法执行监控&#xff09;举例1&#xff1a;监控demo.MathGame类&#xff0c;并且每5S更新一次状态。 二、命令列表 2.3 monitor/watch/trace/stack/tt 相关 使用场景&#xff1a; monit…...

语言的副作用

副作用产生于表达式中有至少一处计算&#xff0c;且其中全部或部分计算会影响表达式其他项&#xff0c;这可能产生副作用。编译器的优化很可能凸显副作用。 赋值 副作用并非都是有害的&#xff0c;比如基本的赋值 a b, 对a而言是产生副作用&#xff0c;但完成了赋值要求。 序…...

centos磁盘逻辑卷LVM创建

centos磁盘逻辑卷LVM创建 一、磁盘逻辑卷LVM说明二、centos磁盘使用情况三、LVM安装指南1.LVM工具安装1. yum list lvm2. yum search lvm3. yum search pvcreate4. yum list lvm25. yum install lvm2 2.创建物理卷2.1磁盘情况查看2.2创建物理卷&#xff08;PV&#xff09; 3.创…...

如何实现Airbyte动态服务发现:从基础到实践的完整指南

如何实现Airbyte动态服务发现&#xff1a;从基础到实践的完整指南 【免费下载链接】airbyte Open-source data movement for ELT pipelines and AI agents — from APIs, databases & files to warehouses, lakes, and AI applications. Both self-hosted and Cloud. 项目…...

【Instagram内容工业化生产】:ChatGPT + Canva + Notion三件套实战手册(含私有化部署Prompt库下载权限)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Instagram内容工业化生产的底层逻辑与范式迁移 Instagram内容工业化生产已从个体化、灵感驱动的创作模式&#xff0c;转向数据闭环、模块化协同与AI增强的系统工程。其底层逻辑根植于三重耦合&#xff…...

ARM ETE Trace ID寄存器详解与应用

1. ARM ETE Trace ID寄存器概述在ARM架构的嵌入式调试系统中&#xff0c;Trace ID寄存器(TRCIDR)是嵌入式跟踪宏单元(ETE)的核心组件。这些寄存器提供了非侵入式的实时程序流分析能力&#xff0c;对于芯片验证、性能优化和系统调试具有不可替代的价值。ETE的Trace ID寄存器从TR…...

混合人工智能架构可以将神经形态系统转变为可靠的发现机器。

基于ON-OFF神经元的高阶伊辛机架构。图片来源&#xff1a;Nature Communications (2026)。DOI&#xff1a;10.1038/s41467-026-71937-4来源&#xff1a;https://techxplore.com/news/2026-05-hybrid-ai-architecture-neuromorphic-reliable.html主导世界的AI机器可以分为三大类…...

Codepack:标准化开发配置与自动化工具链的工程实践

1. 项目概述&#xff1a;一个为开发者准备的“代码行囊” 最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫 JasonLovesDoggo/codepack 。乍一看名字&#xff0c;你可能会觉得这又是一个普通的代码库或者工具集。但点进去仔细研究后&#xff0c;我发现…...

企业级长文档AI落地避坑指南,从PDF解析失真到语义断裂修复——Claude 2026六大隐性能力详解

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;PDF解析失真问题的根源与本质诊断 PDF 文件虽为“便携式文档格式”&#xff0c;但其内部结构高度异构——文本可能嵌入在图形路径中、字体被子集化或完全缺失、字符编码映射断裂&#xff0c;甚至存在跨…...

嵌入式系统开发实战:从架构设计到量产部署的工程指南

1. 从一场顶级技术盛会看嵌入式开发的演进与实战十多年前&#xff0c;也就是2010年的6月&#xff0c;芝加哥嵌入式系统大会&#xff08;ESC Chicago&#xff09;的第一天&#xff0c;被当时的媒体形容为“全明星阵容”的聚会。Dan Saks、Christian Legare、Bill Gatliff、David…...

告别答辩PPT焦虑:百考通AI如何智能化解你的毕业展示难题

当你终于为论文画上最后一个句号&#xff0c;准备迎接毕业的曙光时&#xff0c;答辩PPT的制作却往往成为压垮学生的最后一根稻草。面对这份看似简单却暗藏玄机的任务&#xff0c;百考通AI为你提供智能解决方案。 深夜&#xff0c;当你的论文最后一个字终于落定&#xff0c;一种…...

Tinke:免费开源NDS游戏资源提取工具,轻松解密任天堂DS游戏文件

Tinke&#xff1a;免费开源NDS游戏资源提取工具&#xff0c;轻松解密任天堂DS游戏文件 【免费下载链接】tinke Viewer and editor for files of NDS games 项目地址: https://gitcode.com/gh_mirrors/ti/tinke 你是否曾好奇NDS游戏内部藏着什么秘密&#xff1f;想要提取…...

告别I帧卡顿!用H.264帧内刷新(Intra Refresh)让你的直播码率稳如老狗

告别I帧卡顿&#xff01;用H.264帧内刷新&#xff08;Intra Refresh&#xff09;让你的直播码率稳如老狗 直播技术发展到今天&#xff0c;画面流畅度已经成为用户体验的核心指标之一。但许多开发者在实际推流中常遇到一个棘手问题&#xff1a;明明网络带宽充足&#xff0c;却在…...