分布式 05.redis在springboot中的使用和两个注解@Configuration和@Bean

news2025/2/28 12:11:23

01.在服务器中配置好redis服务器后,在sts中使用redis插件。
02.先是导入jar包:

<!--spring整合redis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>

03.在springboot项目中使用redis:
说明:通过使用Redis工具api的Jedis对象实现远程连接操作虚拟机中的redis。

package com.jt.TestRedis;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import redis.clients.jedis.Jedis;
@SpringBootTest
public class TestRedis01 {
/**
* 通过java远程连接redis的入门案例
* 1.要求关闭Linux的防火墙
* 2.redis的配置文件中的ip绑定注释掉
* 3.redis的配置文件中的保护模式关闭
*
* Jedis(host, port)
* host:服务器的ip
* port:服务的端口号
*/
@Test
public void test01() {
String host="192.168.126.129";
int port=6379;
//1.创建Jedis对象
Jedis jedis=new Jedis(host, port);
jedis.set("redis", "hello~redis");
System.out.println(jedis.get("redis"));
}
}

03.在springboot项目中整合redis
说明:创建redis.properties文件,将redis的配置信息提取到配置文件中
在这里插入图片描述

#配置redis单台服务
redis.host=192.168.126.129:6379

192.168.126.129是虚拟机的ip
6379是redis端口号


整合jedis对象

说明:创建jedis对象,并将创建好的jedis对象交给Spring容器管理。

package com.jt.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import redis.clients.jedis.Jedis;
@Configuration
@PropertySource("classpath:/properties/redis.properties")
public class RedisConfig {
@Value("${redis.host}")
private String node;//192.168.126.129:6379
@Bean
public Jedis jedis() {
String[] nodeArray = node.split(":");
String host=nodeArray[0];
int port=Integer.parseInt(nodeArray[1]);
return new Jedis(host, port);
}
}

@Configuration
这个注解是标识这个类是资源分配类,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
@Bean
@Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。注解的英文是Indicates that a method produces a bean to be managed by the Spring container。多用于返回值是对象的函数
@PropertySource(“classpath:/properties/redis.properties”)
作用是导入资源
@Value(“${redis.host}”)
private String node;//192.168.126.129:6379
给node赋值。

05.事务
说明:通过java程序对redis进行操作时,进行事务控制

@Test
public void testMulti() {
Transaction tran = jedis.multi();//开启事务
try {
tran.set("1", "11");
tran.set("2", "22");
tran.set("3", "33");
tran.exec();//提交事务
} catch (Exception e) {
e.printStackTrace();
tran.discard();//事务的回滚
}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/520292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL--复合查询--内外链接--0422

注&#xff1a;为了方便查看 mysql语句会有突然的换行&#xff0c;书写时请勿模仿。 目录 1.单表查询回顾 显示工资最高的员工的名字和工作岗位 显示工资高于平均工资的员工信息 2.多表查询 比如需要查询雇员名字和所在部门编号及部门名字。 显示部门号为10的部门名&…

win10+使用cmake编译最新的ceres-solver库

参考文献 点击这里访问 感谢大佬&#xff01; 说明 我这个只编译了release版本&#xff0c;如果还需要debug版本&#xff0c;cmake编译和vs编译都需要另外设置一些东西&#xff0c;我没有弄。 文章目录 参考文献说明1. 需要使用的库2. 需要的工具3. 准备工作3.1 建一个文件…

Neovim-配置教程

环境&#xff1a;Ubuntu 20.04 宿主机&#xff1a;windows &#xff08;windows terminal&#xff09;WSL2 NVIM&#xff1a;v0.10.0-dev 配置Neovim 需要保证流畅的github环境&#xff08;以便于快速拉取插件&#xff09;&#xff0c;可以使用代理或是配置Github SSH key 本文…

【OpenCV-Python】——Haar人脸检测深度学习人脸检测EigenFaces/FisherFaces/LBPH人脸识别

目录 前言&#xff1a; 1、人脸检测 1.1 基于Haar的人脸检测 1.2 基于深度学习的人脸检测 2、人脸识别 2.1 EigenFaces人脸识别 2.2 FisherFaces人脸识别 2.3 LBPH人脸识别 总结&#xff1a; 前言&#xff1a; 人脸检测是人脸定位的过程&#xff1b;人脸识别是在人脸…

macOS 下载汇总(系统、应用和教程) 2023 持续更新中

macOS Ventura 13, macOS Monterey 12, macOS Big Sur 11, macOS Catalina 10.15, macOS Mojave 10.14, macOS High Sierra 10.13, macOS Sierra 10.12 请访问原文链接&#xff1a;https://sysin.org/blog/macOS/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。…

VMware Aria Suite 8.12 - 云管理解决方案 (下载索引)

VMware Aria Suite 8.12 - 云管理解决方案 (下载索引) 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-aria-suite/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 云管理套包 VMware Aria Suite&#xff08;以前…

网络基础知识(2)——简单说说IP地址

Internet 依靠 TCP/IP 协议&#xff0c;在全球范围内实现不同硬件结构、不同操作系统、不同网络系统的主机之间的互联。在 Internet 上&#xff0c;每一个节点都依靠唯一的 IP 地址相互区分和相互联系&#xff0c;IP 地址用于标识互联网中的每台主机的身份&#xff0c;设计人员…

Windows 20个经典cmd命令,值得收藏

本文重点介绍Windows系统常用工具和服务的快捷启动命令。相比鼠标多次点击打开窗口&#xff0c;输入命令回车一键打开更为快捷高效。喜欢请点赞收藏&#xff0c;关注我获取最新原创分享~ 一、Windows启动命令使用方式 快捷键 【徽标R】打开命令窗口 输入命令&#xff0c;点击【…

ARM 栈帧(一)

ARM 栈帧 本系列均以 corter-A7(armv7-a) 为例 在 ARM 中&#xff0c;通常为满减栈&#xff08;Full Descending FD&#xff09;, 也就是说&#xff0c;堆栈指针指向堆栈内存中最后一个填充的位置&#xff0c;并且随着每个新数据项被压入堆栈而递减。 栈的本质 要理解栈的本…

基于NXP+FPGA的大容量固态存储板实现方案

1 概述 近年来 &#xff0c;大容量数据存储设备受到软硬件等发展的限制主 要还是采用机械硬盘叠加组合而用。机械硬盘以磁盘片作为载 体 &#xff0c;采用机械马达 &#xff0c;存在抗振性能低、低温性能差、噪声大等缺点。 固态硬盘是以半导体作为存储介质及控制载体 &…

使用马哈鱼SQLFLow 1 分钟获取复杂 SQL 语句的血缘关系

数据血缘关系在企业的数据治理中是非常重要的一个环节&#xff0c;关于数据血缘在企业数据治理中的重要作用&#xff0c;可以参考这篇文章。SQL 语言在数据处理中被广泛使用&#xff0c;SQL 语句中包含了丰富的数据血缘关系&#xff0c;关于什么是 SQL 中的数据血缘&#xff0c…

死锁与活锁

1 死锁概述 死锁主要是由于资源使用不当引发的。OS中存在很多不同类型的软硬件资源&#xff0c;而可以引发死锁的资源 主要是需要互斥访问的、不可被抢占的资源&#xff0c;即临界资源。下面先来简单了解下资源的分类。 资源分类 按照资源是否可重复使用划分&#xff0c;可以分…

Spring ( 三 ) SpringIoC

3.SpringIoC Spring 核心 是 通过IoC 降低 项目中的类之间的耦合 IoC Inversion of Control 控制反转&#xff1a; 应用本身不负责依赖对象的创建及维护&#xff0c;依赖对象的创建及维护是由外部容器负责的。 ​ 这样控制权就由应用转移到了外部容器&#xff0c;控制权的转移…

【Linux从入门到精通】一文带你理解进程概念

我们通过对上篇文章冯诺依曼体系结构对硬件进行讲解后&#xff0c; 本篇文章会对进程进行深入讲解。同时会讲解PCB&#xff08;进程控制块&#xff09;。希望本篇文章内容会对你有所帮助。 文章目录 一、再次理解操作系统 1、1 操作系统的作用 1、2 操作系统的管理 二、进程基本…

基于Kubernetes集群构建大中型企业CICD应用平台(5)--Integrate工具

5.1、jenkins介绍 持续集成、持续部署的工具很多&#xff0c;其中Jenkins是一个开源的持续集成平台。 Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务&#xff0c;并且还涉及到了构建项目等任务。 Jenkins需要大量的插件保证工作&#xff0c;安装成本较高&am…

Java Web开发:Spring Boot和Spring Cloud的应用和实践

一、介绍 Java Web开发是当今互联网时代中的一项重要技术&#xff0c;随着互联网的发展和应用场景的不断扩大&#xff0c;Java Web开发技术也得到了广泛的应用。而Spring Boot和Spring Cloud作为Java Web开发中最常用的技术之一&#xff0c;已经成为了很多开发者必备的技能。本…

使用Vue3和Typescript实现可复用的路由标签页和面包屑导航组件

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: 三十天精通 Vue 3 文章目录 一、为什么需要可复用的路由标签页和面包屑导航组件1.1 前端应用导航的问题1.2 解决问题的方法二、Vue3和Typescript基础知识回…

shell脚本中数组的运用以及排序算法

shell脚本中数组的运用 一、数组的介绍1、概念2、定义方法3、数组包括的数据类型 二、关于数组的操作1、获取数组长度2、获取数组各个元素的下标3、获取数组列表或单个元素4、对数组切片输出5、对数组里的元素替换6、删除单个元素或数组7、数组追加元素8、向函数传入数组的值 三…

Learning C++ No.20 【红黑树实战】

引言&#xff1a; 北京时间&#xff1a;2023/5/12/20:30&#xff0c;今天周五&#xff0c;周五不摆烂从我做起&#xff0c;虽然刚睡醒&#xff0c;但是今天如果论学习时长&#xff0c;那可能是许久以来最长的一天&#xff0c;从早上6:40晨跑回来坐在凳子上&#xff0c;一坐久坐…

在 I/O 看未来 | 开发者集合!官方学习资源已更新,即 课 解锁新技能!

看完 Google I/O 2023 的精彩内容 你是否已跃跃欲试&#xff0c;准备充电学习&#xff1f; 马上跟随 Google 开发者在线课程 刷新知识储备和开发技能 将技术热爱落地为实践应用&#xff01; "解码 Google I/O 洞见科技未来" 征文活动 也向身为技术爱好者的你发出召唤…