Spring aop AspectJ切入点初用心得

以前项目中未用过aop,故一直对aop不了解,近期看了看,大致了解了下,在上代码前首先需要了解aop一些基本概念。

一、AOP基本概念

: 1、Aspect(切面):说白了就是一个class,里面定义切入点和通知

2、JointPoint(连接点):接入点,例如方法执行、类初始化、异常处理。 在Spring AOP中,接入点始终表示方法执行。

3、Advice(增强):AOP在特定的切入点上执行的增强处理,主要包括下面几种:before,after,afterReturning,afterThrowing,around,执行顺序为:around->before->around->after->afterReturning 或 afterThrowing

4、Pointcut(切入点):用来匹配特定的接入点,增强会与切点表达式产生关联,并运行在任何切点匹配到的接入点上。说白点也就是定义触发时机。

5、AOP代理:为了实现切面功能一个对象会被AOP框架创建出来。在Spring框架中AOP代理的默认方式是:有接口,就使用基于接口的JDK动态代理,否则使用基于类的CGLIB动态代理。但是我们可以通过设置proxy-target-class=“true”,完全使用CGLIB动态代理。

二、模拟aspect advice的执行过程

1、手动配置
首先创建一个普通class,里面包含advice的几种增强处理。如图:
在这里插入图片描述
在这里插入图片描述 在这里插入图片描述
class创建完毕后,开始配置spring配置文件,如图:
在这里插入图片描述
在这里插入图片描述
下来测试:
在这里插入图片描述
运行结果:
在这里插入图片描述
请忽略上图中**null:0 这个,是个人实现类中的console信息
2、注解方式
与手动配置区别在于切面类和配置,先看切面类,需要用@Aspect标识,每个增强也是用注解标注:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置文件:
在这里插入图片描述
运行结果就不展示了,和手动配置一致

通过上面执行结果可以看出Advice(增强)的运行过程:
在这里插入图片描述

此外需要注意afterReturning中指定的返回值,其实接受的是arround中的返回值。如果需要对返回结果进行修改,需要在arround中进行操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值