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

SpringBoot项目启动时自动加载数据到Redis的完整实现方案,用于存储字典,定时任务,登录用户等

一、基础配置

‌在pom.xml中添加必要依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3</version>
</dependency>

二、核心实现方式

方式一:使用CommandLineRunner接口

package com.thk.config;import com.alibaba.fastjson.JSON;
import com.thk.domain.SysUser;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;import java.util.concurrent.TimeUnit;/**** 方式一:使用CommandLineRunner接口*/
@Component
@Slf4j
public class AddUserToRedisConfig implements CommandLineRunner {// 自动注入RedissonClient实例,用于操作Redis@Autowiredprivate RedissonClient redissonClient;// 重写CommandLineRunner接口的run方法@Overridepublic void run(String... args) throws Exception {// 创建一个SysUser对象SysUser sysUser = new SysUser();// 设置用户名为"张三"sysUser.setName( "张三" );// 设置密码为"123456"sysUser.setPassword( "123456" );// 从Redisson客户端获取名为"users"的Bucket对象RBucket<Object> users = redissonClient.getBucket( "userone" );// 将SysUser对象转为JSON字符串并存入Redisusers.set( JSON.toJSONString( sysUser ) );// 设置该键值对的过期时间为30分钟users.expire( 30, TimeUnit.MINUTES );log.info( "添加成功:取出的数据是" + users.get() );}
}

方式二:使用@PostConstruct注解

package com.thk.config;import com.alibaba.fastjson.JSON;
import com.thk.domain.SysUser;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;
import java.util.concurrent.TimeUnit;/*** 方式二:使用@PostConstruct注解*/
@Component
@Slf4j
public class AddUserToRedisCongfigTwo {// 自动注入RedissonClient实例,用于操作Redis@Autowiredprivate RedissonClient redissonClient;// 添加 @PostConstruct注解@PostConstructpublic void addUserToRedis() {// 创建一个SysUser对象SysUser sysUser = new SysUser();// 设置用户名为"张三"sysUser.setName( "李四" );// 设置密码为"123456"sysUser.setPassword( "123456" );// 从Redisson客户端获取名为"users"的Bucket对象RBucket<Object> users = redissonClient.getBucket( "usertwo" );// 将SysUser对象转为JSON字符串并存入Redisusers.set( JSON.toJSONString( sysUser ) );// 设置该键值对的过期时间为30分钟users.expire( 30, TimeUnit.MINUTES );log.info( "添加成功:取出的数据是" + users.get() );}
}

三、测试

1、控制台输出

2.redis工具查看:userone

3.usertwo

http://www.lryc.cn/news/572398.html

相关文章:

  • Spring @Autowired 依赖注入全解析
  • 语音情感识别:CNN-LSTM 和注意力增强 CNN-LSTM 模型的比较分析
  • Hive优化详细讲解
  • Redis 的优势有哪些,它是CP 还是 AP?CAP 理论又是什么?
  • C#的泛型和匿名类型
  • Ubuntu最新版本(Ubuntu22.04LTS)安装nfs服务器
  • Java八股文——计算机网络「传输层篇」
  • CppCon 2017 学习:Everything You Ever Wanted to Know about DLLs
  • CppCon 2017 学习:dynamic_cast from scratch
  • 【AJAX 实战】图书管理系统上 渲染图书列表+新增图书+删除图书
  • windows系统JDK1.8 与JDK 17切换
  • css3 文本效果(text-shadow、text-overflow、word-wrap、word-break)文本阴影、文本换行、文本溢出并隐藏显示省略号
  • 数据结构 6(算法)
  • CMake实践:指定gcc版本编译和交叉编译
  • 华为OD机试-最佳植树距离-二分(JAVA 2025A卷)
  • DeserializationViewer使用说明
  • Java并发编程实战 Day 29:大数据处理的并行计算模型
  • Arduino Nano 33 BLE Sense Rev 2开发板使用指南之【环境搭建 / 点灯】
  • FPGA基础 -- Verilog 命名事件
  • React 19中如何向Vue那样自定义状态和方法暴露给父组件。
  • 什么是Spark
  • 服务器如何从http升级到https(nginx)
  • Kaggle-Plant Seedlings Classification-(多分类+CNN+图形处理)
  • HashMap算法高级应用实战:频率类子数组问题的5种破解模式
  • ThreadLocal以及内存泄露原理的源码解析
  • NodeJS 对接 Outlook 发信服务器实现发信功能
  • 视频汇聚EasyCVR平台v3.7.2发布:新增全局搜索、播放器默认解码方式等4大功能
  • Python PyMySQL【mysql适配器】 简介
  • leetcode:461. 汉明距离(python3解法,数学相关算法题)
  • 在 Mac 上配置 Charles,抓取 iOS 手机端接口请求