Redis-3-Java搭建Redis

一、通用配置Jedis(无框架)

Java操作Redis:jar包+API,框架(配置+ jar包+API)

Redis官方推荐的工具类

这里写法是最通用的:和Spring框架没有关系

1.1 spring自动导入连接池的依赖

Redis-3-Java搭建Redis

1.2 基本操作Jedis

Redis-3-Java搭建Redis

1.3 使用连接池

Redis-3-Java搭建Redis

1.4 封装成工具类

Redis-3-Java搭建Redis

1.5 配置信息写入配置文件

Redis-3-Java搭建Redis

Redis-3-Java搭建Redis

也可以这样获取

Redis-3-Java搭建Redis

二、spring配置jedis

这里建的springboot项目,但是并没有用到启动器,只是用到了注入和读配置文件

这里是自定义的配置文件,配置文件中自定义配置信息,自动注入框架bean的属性;SpringBoot有自己的properties配置文件,可以不使用自定义的properties文件

分清自定义jedis的properties和spring自己的配置类,想读到jedis的属性还得配置成框架能认

Redis-3-Java搭建Redis

Redis-3-Java搭建Redis

spring是无法给静态资源注入的,只能给实例成员变量注入,静态变量在创建对象前创建,spring只能做到对创建的对象进行注入,而反射创建对象和注入值都在static赋值的后面执行,所以spring框架无法给static静态变量赋值

Redis-3-Java搭建Redis

3.1 就想注入静态,怎么办?

Redis-3-Java搭建Redis

实现一个生命周期接口,实现afterPropertiesSet()方法(在properties赋值之后执行)

将已经注入的host的值,赋给静态变量HOST。

Redis-3-Java搭建Redis

Redis-3-Java搭建Redis

但是静态代码块的执行顺序在成员变量赋值之前执行,还是取不到值

上面的干预生命周期的方法在静态代码块中无效。

Redis-3-Java搭建Redis

3.2 还是取不到值怎么解决?得绕一圈

只能新建一个配置类,专门配置jedis,然后再绕一下去读这个配置类的成员变量,这个就能读到了,就相当于中间又建了一个类去读,static的先执行无法在一个类中去解决。

Redis-3-Java搭建RedisRedis-3-Java搭建Redis

读取配置类的信息,jedis工具类就不需要加@Component注解了,因为都是从JedisConstant配置类里获取的

Redis-3-Java搭建Redis

三、SpringBoot整合Redis

一个环境建多个模块,点击这个

Redis-3-Java搭建Redis

Redis-3-Java搭建Redis

4.1 Redis场景启动器

Redis-3-Java搭建Redis

4.2 配置数据

这里才是spring自己的类,可以直接读到,不需要再配置,上面通用配置是需要配置才能让spring读取到

Redis-3-Java搭建RedisRedis-3-Java搭建Redis

4.3 API

Redis-3-Java搭建Redis