0911 AOP初总结 idea 提取redis缓存服务

AOP作用

名称:面向切面编程.
一句话总结: 在不改变原有代码的条件下,对功能进行扩展.
公式: AOP = 切入点表达式 + 通知方法.

在这里插入图片描述
如上图 考虑到要将redis缓存服务提取出来 低耦合

原有findItemCatList方法上加扩展就好了 aop扩展

前提:写好注解(切入点表达式) 插入放在目标方法的上方
在这里插入图片描述

再者: 在目标方法基础上 编写切入点方法(注解 相当于if)
在这里插入图片描述

1). bean(bean的id) 类名首字母小写 匹配1个类
2). within(包名.类名) 按包路径匹配类 匹配多个类
上述表达式是粗粒度的控制,按类匹配.
3).最常用的: execution(返回值类型 包名.类名.方法名(参数列表))
4).本次使用的 我觉得也是很常用的 实用性强 @annotation(包名.注解名) 按注解进行拦截.

一个标识注解 标识我要在哪里加入 哪里做扩展

在这里插入图片描述
在这里插入图片描述
通知方法

这里应用环绕通知
环绕通知: 在目标方法执行前后都要执行的通知方法. 控制目标方法是否执行.并且环绕通知的功能最为强大.**
在这里插入图片描述
在这里插入图片描述

扩展 jointPoint理解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

扩展 aop业务分析

在这里插入图片描述

扩展 业务分析 当第一次查询的时候 key不存在 需要先查询数据库 再存入redis

在这里插入图片描述
return扩展 返回数据呈现到页面
在这里插入图片描述
aop查询redis事务分析 前提 第一次key空 查询过数据库之后 set(存入了)值在redis里面
在这里插入图片描述
业务分析 需要获取json数据后 ,直接转化成对象 然后返回 呈现在页面中
在这里插入图片描述
把key 和 json存进去了

下图来自第一步

在这里插入图片描述
分析得出 根据json串 还原回result对象就足够了

f

开始写业务代码
在这里插入图片描述
在这里插入图片描述

如下图 第二个要传的(需要的参数)是别人的返回值类型
在这里插入图片描述
如上图抛出疑问 如何获得返回值类型
在这里插入图片描述
在这里插入图片描述
如上图 所有我们要想办法 获得当前所在方法的返回值类型

最基础的反射机制

拿到返回值类型 就能拿到方法 然后其余的都可以拿到了
在这里插入图片描述

得到方法的名字后 就可以得到方法的参数列表

只有拿到了方法的名字 和方法的参数列表 才能过回去动态反射回来的这个方法对象ca

然后发现缺少一个class的类型
在这里插入图片描述
我们把参数转化成类型就行

在这里插入图片描述
如上图 然后把类型转化成具体的数组遍历

最基础的代码 很麻烦

可以通过封装的api去解决问题
在这里插入图片描述
这个API可以得到方法中的任意参数 点进去看
在这里插入图片描述
signature可以标识为连接点的标记
在这里插入图片描述
在这里插入图片描述
如上图 是一个接口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这就是 redis二次查询得事务分析 今晚再实现 自己手敲代码 太欠缺了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值