Spring Boot项目集成Redisson 原始依赖与 Spring Boot Starter 的流程

news/2025/2/28 6:41:34/

Redisson 是一个高性能的 Java Redis 客户端,提供了丰富的分布式工具集,如分布式锁、Map、Queue 等,帮助开发者简化 Redis 的操作。在集成 Redisson 到项目时,开发者通常有两种选择:

  1. 使用 Redisson 原始依赖
  2. 使用 Redisson Spring Boot Starter

这篇文章将详细介绍这两种集成方式的配置、使用场景以及它们的差异,帮助你更好地理解并选择合适的方案。

1. 使用 Redisson 原始依赖

Redisson 原始依赖的方式指的是直接使用 redisson 库,并自行配置 RedissonClient 来与 Redis 进行交互。这种方法适用于任何 Java 项目,包括 Spring、非 Spring 项目。

使用步骤
1.1 引入依赖

pom.xml 中添加 Redisson 依赖:

<dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.16.5</version> <!-- 版本号可根据需求调整 -->
</dependency>
1.2 创建配置类并初始化 RedissonClient

手动定义 Config 对象,并创建 RedissonClient 实例:

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;public class RedisConfig {public RedissonClient createRedissonClient() {// 创建 Redisson 配置对象Config config = new Config();// 设置为单节点配置config.useSingleServer().setAddress("redis://127.0.0.1:6379").setPassword("yourPassword");// 创建 RedissonClient 实例return Redisson.create(config);}
}
1.3 使用 RedissonClient

在业务代码中使用 RedissonClient

public class RedissonExample {public static void main(String[] args) {RedisConfig redisConfig = new RedisConfig();RedissonClient redissonClient = redisConfig.createRedissonClient();// 使用 Redisson 获取分布式锁var lock = redissonClient.getLock("testLock");lock.lock();try {// 模拟业务逻辑System.out.println("Lock acquired and executing critical section.");} finally {lock.unlock();}}
}
特点
  • 手动配置:手动定义 Config 对象并配置 RedissonClient,可以完全控制连接参数、池大小、超时等。
  • 适用于非 Spring 环境:这种方式并不依赖 Spring,可以应用于任何 Java 项目。
  • 灵活性强:可以根据具体需求实现自定义逻辑和配置。
使用场景
  • 项目对 Spring 依赖不多,或完全不使用 Spring。
  • 需要对 RedissonClient 的每个细节进行精细控制。

2. 使用 Redisson Spring Boot Starter

redisson-spring-boot-starterRedisson 提供的用于与 Spring Boot 更好集成的模块,它提供了自动化的配置功能,使得 RedissonClient 的配置过程更加简洁。

使用步骤
2.1 引入依赖

pom.xml 中添加 redisson-spring-boot-starter 依赖:

<dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.16.5</version> <!-- 版本号可以根据需求调整 -->
</dependency>
2.2 在 application.ymlapplication.properties 中配置 Redis 信息

application.yml 中配置 Redis:

redisson:singleServerConfig:address: "redis://127.0.0.1:6379"password: "yourPassword"connectionPoolSize: 10connectionMinimumIdleSize: 2
2.3 使用 RedissonClient 自动注入

Spring Boot 会自动配置 RedissonClient,因此你可以直接注入并使用它:

import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RedissonController {@Autowiredprivate RedissonClient redissonClient;@GetMapping("/lock")public String acquireLock() {var lock = redissonClient.getLock("testLock");lock.lock();try {// 模拟业务逻辑return "Lock acquired and critical section executed.";} finally {lock.unlock();}}
}
特点
  • 自动化配置redisson-spring-boot-starter 能从 Spring Boot 配置文件中读取参数并自动创建 RedissonClient
  • 与 Spring Boot 紧密集成:无需手动管理 RedissonClient,更加符合 Spring Boot 的自动化特性。
  • 方便注入:可以通过 @Autowired 轻松地注入 RedissonClient,非常符合 Spring 的开发风格。
使用场景
  • 使用 Spring Boot 项目,并且希望最大化利用 Spring Boot 的自动配置特性。
  • 希望简化代码、减少配置工作量。

两种方式的对比

特性

原始 Redisson 依赖

Redisson Spring Boot Starter

配置方式

手动创建 ConfigRedissonClient

使用 application.yml 自动配置

适用项目类型

任何 Java 项目,包括非 Spring 项目

适用于 Spring Boot 项目

灵活性

配置灵活,细节控制全面

依赖自动配置,灵活性稍低

代码复杂度

需要手动编写配置类

自动配置,代码量少,集成简单

与 Spring 的集成

需手动管理,适用于传统 Java 项目

Spring Boot 会自动管理 RedissonClient

典型场景

对 Spring 依赖不多,或者需要特殊配置场景

使用 Spring Boot,追求快速开发和简洁配置

如何选择?

  • 如果你的项目是传统 Java 项目,或者使用了 Spring Framework 而不是 Spring Boot,并且你希望对 Redis 的配置有更多细节掌控,那么可以选择 原始 Redisson 依赖 的方式。它可以让你根据需求实现自定义的配置和连接管理。
  • 如果你的项目是 Spring Boot 项目,并且你希望充分利用 Spring Boot 的自动配置特性来减少配置代码,可以选择 Redisson Spring Boot Starter。这种方式集成简单,代码更加简洁,可以大大提高开发效率。

总结

Redisson 提供了两种集成 Redis 的方式:原始依赖和 Spring Boot Starter。原始依赖适用于需要完全自定义配置的场景,而 Spring Boot Starter 使得集成过程变得更加简单,特别适合 Spring Boot 项目。根据具体项目的需求和开发环境选择合适的方式,能够更好地帮助你完成项目的 Redis 集成,实现更强大的分布式能力。


http://www.ppmy.cn/news/1575434.html

相关文章

STM32 微控制器库RCC_OscInitTypeDef结构参数介绍

目录 1. 结构体定义2. 结构体成员说明(1) OscillatorType(2) HSEState(3) LSEState(4) HSIState(5) HSICalibrationValue(6) LSIState(7) PLL 3. 使用步骤(1) 定义结构体(2) 配置结构体成员(3) 调用 HAL 初始化函数 4. 示例代码5. 注意事项(1) 时钟源的选择(2) 校准值(3) 时钟配…

RuntimeWarning: invalid value encountered in scalar power在进行标量的幂运算时遇到了无效值

year_profit ((profit / initial_cash) ** (1 / yy) - 1) * 100 RuntimeWarning: invalid value encountered in scalar power 这个警告表示在执行标量幂运算 ((profit / initial_cash) ** (1 / yy) - 1) * 100 时遇到了无效值。常见的引发原因及解决办法如下&#xff1a; ###…

WPF12-MVVM

目录 1. 什么是MVVM2. 实现简单MVVM2.1. Part 12.2. Part 2 1. 什么是MVVM MVVM 是 Model-View-ViewModel 的缩写&#xff0c;是一种用于构建用户界面的设计模式&#xff0c;是一种简化用户界面的事件驱动编程方式。 MVVM 的目标是实现用户界面和业务逻辑之间的彻底分离&…

DeepSeek中的MLA技术

大模型推理的两个阶段&#xff1a;prefill和decode prefill阶段处理整个输入序列&#xff0c;并生成第一个输出token&#xff0c;并初始化KV cachedecode阶段则逐个生成后续的tokens KV cache 无KV cache的推理过程&#xff1a;每次生成新token时&#xff0c;需要将整个历史序列…

专题一和为s的两个数字

1.题目 题目分析&#xff1a; 在给定的数组中&#xff0c;找到俩个数字&#xff0c;且这两个数字的和与给定的target相等就行&#xff0c;可能会有很多组&#xff0c;但只要返回一组就可以。 2.算法原理 方法一&#xff1a; 暴力枚举法&#xff0c;通过俩层循环&#xff0c;…

【QT】QLinearGradient 线性渐变类简单使用教程

目录 0.简介 1&#xff09;qtDesigner中 2&#xff09;实际执行 1.功能详述 3.举一反三的样式 0.简介 QLinearGradient 是 Qt 框架中的一个类&#xff0c;用于定义线性渐变效果&#xff08;通过样式表设置&#xff09;。它可以用来填充形状、背景或其他图形元素&#xff0…

零基础学习OpenGL(一)创建一个窗口

基于 ubuntu 系统&#xff0c;设置基础环境。 #!/usr/bin/env bashsudo apt-get update# 安装基础编译软件 sudo apt-get -y install gcc g cmake git# 安装编译 glfw 依赖的软件 sudo apt-get -y install libwayland-dev libx11-dev libxcursor-dev libxi-dev libxinerama-de…

矩阵碰一碰发视频之 API 接口接入技术开发全解析,支持OEM

矩阵碰一碰发视频作为一种创新的视频分享方式&#xff0c;为用户带来了便捷且独特的体验。而在这一功能的实现过程中&#xff0c;API 接口接入扮演着至关重要的角色。通过接入合适的 API&#xff0c;能够高效地实现视频数据的传输、设备间的通信以及用户交互等功能。本文将深入…