springboot-redis使用fastjson2

这篇具有很好参考价值的文章主要介绍了springboot-redis使用fastjson2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、pom

注:springboot2.*使用fastjson2-extension-spring5,3.*使用fastjson2-extension-spring6文章来源地址https://www.toymoban.com/news/detail-610903.html

<fastjson.version>2.0.37</fastjson.version>
<!-- json -->
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>${fastjson.version}</version>
</dependency>
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2-extension</artifactId>
    <version>${fastjson.version}</version>
</dependency>
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2-extension-spring5</artifactId>
    <version>${fastjson.version}</version>
</dependency>

2、RedisConfig

import com.alibaba.fastjson2.support.spring.data.redis.FastJsonRedisSerializer;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;


@Log4j2
@Configuration
public class RedisConfig {
    @Autowired
    private RedisConnectionFactory factory;

    @Bean(name = "redisTemplate")
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory);
        //序列化
        //如需使用类自动化装配(redis直接存储类对象),请使用类FastJson2RedisSerializer序列化
        FastJsonRedisSerializer<Object> fastJsonRedisSerializer = new FastJsonRedisSerializer<>(Object.class);
        // value值的序列化采用fastJsonRedisSerializer
        template.setDefaultSerializer(fastJsonRedisSerializer);
        log.info("redis client初始化完成");
        return template;
    }
}

3、FastJson2RedisSerializer

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.JSONWriter;
import com.alibaba.fastjson2.filter.Filter;
import org.springframework.data.redis.serializer.RedisSerializer;

public class FastJson2RedisSerializer<T> implements RedisSerializer<T> {
    static final Filter autoTypeFilter = JSONReader.autoTypeFilter(
            // 按需加上需要支持自动类型的类名前缀,范围越小越安全
            "com.***.***.***","com.***.***.***"
    );

    private Class<T> clazz;

    public FastJson2RedisSerializer(Class<T> clazz) {
        super();
        this.clazz = clazz;
    }

    @Override
    public byte[] serialize(T t) {
        if (t == null) {
            return new byte[0];
        }
        return JSON.toJSONBytes(t, JSONWriter.Feature.WriteClassName);
    }

    @Override
    public T deserialize(byte[] bytes) {
        if (bytes == null || bytes.length <= 0) {
            return null;
        }

        return JSON.parseObject(bytes, clazz, autoTypeFilter);
    }
}

到了这里,关于springboot-redis使用fastjson2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot Redis 基础使用

    目录 Redis能做什么: redis特点 redis优点 opsForValue opsForList opsForSet opsForZSet StringRedisTemplate与RedisTemplate区别点         redis是一个key-value。和Memcached类似,它支持存储的value类型相对更多,包括 string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。

    2024年02月07日
    浏览(35)
  • springboot使用redis

    默认有三种方式连接redis. 第一种:jedis—传统的项目–ssm 第二种:lettuce:----刚出现没有多久就被springboot整合进来。 第三种:springboot连接redis (1)引入jedis依赖 (2)编写相关的代码 每次使用jedis对象时 都需要自己创建,当使用完后,需要关闭该对象。===jedis中也存在连接池. s

    2024年02月03日
    浏览(27)
  • 【SpringBoot】第一篇:redis使用

    背景: 本文是教初学者如何正确使用和接入redis。     好了,到此处就已经介绍完毕了! 如果有什么问题可以问博主的,可以在底下进行留言,看到一定回复你们。

    2024年02月11日
    浏览(38)
  • springboot中redis的使用

    springboot中redis的使用 一、springboot整合redis 1.1 基本使用 1、导入依赖 2、添加redis配置 此时已经可以在代码中使用redisTemplate对象了。例如: 但是,查看redis中存储的数据发现,key和value前面都有一段看似乱码的数据,而且中文也进行编码。为了解决该问题,需要参考前面ssm中整

    2024年02月17日
    浏览(35)
  • 017-信息打点-语言框架&开发组件&FastJson&Shiro&Log4j&SpringBoot等

    1、CMS指纹识别-不出网程序识别 2、开发框架识别-PHPPythonJava 3、开发组件识别-Java常见安全漏洞组件 解决: 1、CMS识别到后期漏洞利用和代码审计 2、开发框架识别到后期漏洞利用和代码审计 3、开发组件识别到后期漏洞利用和代码审计 演示案例: ➢指纹识别-本地工具-GotoSc

    2024年01月21日
    浏览(48)
  • SpringBoot 如何使用 Redis 作为缓存?

    在今天的互联网应用中,缓存是一个非常重要的概念。缓存可以减轻数据库的负担,提高系统的性能。Redis 是一个非常流行的内存数据库,它可以用作缓存,提供快速的读写速度和高可用性。在本文中,我们将介绍如何在 SpringBoot 中使用 Redis 作为缓存。 Redis 是一个高性能的

    2024年02月11日
    浏览(37)
  • SpringBoot集成Redis使用Lettuce

            Redis是最常用的KV数据库,Spring 通过模板方式(RedisTemplate)提供了对Redis的数据查询和操作功能。本文主要介绍基于RedisTemplate + lettuce方式对Redis进行查询和操作的案例。 一、Redis基础数据类型         首先对redis来说,所有的key(键)都是字符串。我们在谈基

    2024年02月05日
    浏览(58)
  • SpringBoot中Redis的基础使用

    首先引入依赖 然后在application.yml的spring下增加redis配置: 代码如下 然后在根包下创建一个service的文件夹加,然后在里面增加redis文件夹,redis文件夹里编写redis的基础操作函数。 编写IRedisService接口,编写增删改查函数,代码如下: 编写RedisServiceImpl实现,实现Redis的增删改查

    2024年02月08日
    浏览(27)
  • SpringBoot使用redis作为缓存的实例

    目录 什么是缓存?  缓存的作用? 缓存的成本? 实际项目中的应用  代码展示 缓存 就是数据交换的缓冲区(称作 Cache [ kæʃ ] ),是存贮数据的临时地方,一般读写性能较高。         降低后端负载         提高读写效率,降低响应时间         数据一致性成本

    2024年02月14日
    浏览(42)
  • 使用SpringBoot利用Redis实现消息队列

    随着互联网的发展,消息队列的应用越来越广泛。消息队列可以解决系统之间的异步通信问题,提高系统的可靠性和可扩展性。在Java开发中,Redis作为一种高性能的缓存和消息队列系统,被广泛应用。本文将介绍如何使用SpringBoot中利用Redis实现消息队列。 在Redis中,List是一种

    2024年02月14日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包