Redis-SpringBoot-AOP

Redis-SpringBoot-AOP

     

      由于SpringBoot不需要再写applicationContext.xml,转为更为简洁风格的application.yml,也就没有了AOP如下配置

      而是依靠application.yml短短代码和大量注解来完成

      代码是简洁了,但各种细节配置都被隐藏了,找个错费半天劲,所以这就需要有更坚实的技术啊!

 

1. 导包

 

2. 设置application.yml

jdk: 默认,面向接口

cglib: 字节码增强,面向继承类(推荐)

 

3. 编写一个普通类,用来做增强类

申请为被Spring管理bean,SpringBoot使用Aspect来处理AOP功能

使用以下注解来代表增强类型:

@Around:环绕增强,相当于MethodInterceptor

@AfterReturning:后置增强,相当于AfterReturningAdvice,方法正常退出时执行

@Before:前置增强,相当于BeforeAdvice的功能,相似功能的还有

@AfterThrowing:异常抛出增强,相当于ThrowsAdvice

@After: final增强,不管是抛出异常或者正常退出都会执行

3.1 切点具体路径

通配规则匹配和Spring AOP一致

 

3.2 切点注解

编写一个软接口,准备注解切入点

 

无参数例子

 

有参数例子:

引入自定义注解

 

 

增强方法参数一致原则:

增强方法的参数数量,类型,位置 需要和 切点保持一致,比如

注解的切点 args( i , j ) 和 int i, int j 必须保持一致

普通类型参数使用 args 来声明参数一致

注解类型参数使用 @annotation 来声明参数一致

其中 ProceedingJoinPoint(环绕),JoinPoint(其它)是AOP特殊类型,不需要遵循参数一致原则

 

5. 放置软接口注解,实现方法级增强

 

分页只是一个测试AOP的例子,如果考虑分页那么缓存意义就不大,代码会更复杂。

建议做法:

      1. 一次查询固定数量条目list,然后缓存到redis

      2. list丢入到前台,由前台框架实现分页功能

5. 后续补充功能

分割读写Redis功能

      5.1 使用注解参数区分读,写请求

      5.2 读请求,完成上面逻辑

      5.3 写请求,

修改原始数据库

删除Redis记录

重新存入Redis

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值