SpringBoot整合Redis

1.Redis命令

1.1 入门案例操作

image.png

2 SpringBoot整合Redis

2.1 编辑pro配置文件

由于redis的IP地址和端口都是动态变化的,所以通过配置文件标识数据. 由于redis是公共部分,所以写到common中
image.png

2.2 编辑配置类

image.png

3 对象与JSON串转化

3.1 对象转化JSON入门案例

image.png

3.2 编辑ObjectMapper工具API

image.png

4 实现商品分类缓存实现

4.1 编辑ItemCatController

说明: 切换业务调用方法,执行缓存调用
image.png

4.2 编辑ItemCatService

image.png

5. AOP实现Redis缓存

5.1 现有代码存在的问题

1.如果直接将缓存业务,写到业务层中,如果将来的缓存代码发生变化,则代码耦合高,必然重写编辑代码.
2.如果其他的业务也需要缓存,则代码的重复率高,开发效率低.
解决方案: 采用AOP方式实现缓存.

5.2 AOP

在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

5.3 AOP实现步骤

公式: AOP(切面) = 通知方法(5种) + 切入点表达式(4种)

5.3.1 通知复习

1.before通知 在执行目标方法之前执行
2.afterReturning通知 在目标方法执行之后执行
3.afterThrowing通知 在目标方法执行之后报错时执行
4.after通知 无论什么时候程序执行完成都要执行的通知

上述的4大通知类型,不能控制目标方法是否执行.一般用来记录程序的执行的状态.
一般应用与监控的操作.

5.around通知(功能最为强大的) 在目标方法执行前后执行.
因为环绕通知可以控制目标方法是否执行.控制程序的执行的轨迹.

5.3.2 切入点表达式

1.bean(“bean的ID”) 粒度: 粗粒度 按bean匹配 当前bean中的方法都会执行通知.
2.within(“包名.类名”) 粒度: 粗粒度 可以匹配多个类
3.execution(“返回值类型 包名.类名.方法名(参数列表)”) 粒度: 细粒度 方法参数级别
4.@annotation(“包名.类名”) 粒度:细粒度 按照注解匹配

5.3.3 AOP入门案例

image.png

5.4 AOP实现Redis缓存

5.4.1 业务实现策略

1).需要自定义注解CacheFind
2).设定注解的参数 key的前缀,数据的超时时间.
3).在方法中标识注解.
4).利用AOP 拦截指定的注解.
5).应该使用Around通知实现缓存业务.

5.4.2 编辑自定义注解

image.png

5.4.3 方法中标识注解

image.png

5.4.4 编辑CacheAOP

image.png

你可能感兴趣的