Spring中的AOP

学习了Java基础后就应该知道了aop的概念,面向切面编程。

基础概念

Joinpoint:连接点,所谓连接点是指那些可以被拦截到的点。在spring中,这些点指的是方法,因为 spring 只支持方法类型的连接点。不过他再spring中没有配置的必要,pointcut才有配置的价值。

Pointcut:切入点,所谓切入点是指我们要对哪些 Joinpoint 进行拦截的定义,必不可少的配置信息。

Advice:通知/增强,所谓通知是指拦截到 Joinpoint 之后所要做的事情就是通知,通知分为五种:前置通知,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能)

Introduction(引介):引介是一种特殊的通知在不修改类代码的前提下, Introduction 可以在运行期为类动态地添加一些方法或Field. Target(目标对象):代理的目标对象

Weaving:织入,是指把增强应用到目标对象来创建新的代理对象的过程.spring采用动态代理织入,而AspectJ 采用编译期织入和类装在期织入

Proxy:代理,一个类在被代理类生成之前,AOP 织入。

Aspect:切面, 是切入点和通知(引介)的结合。通知和切入点在这里汇合,实现切入操作。

配置实例:

          

通知类型

前置通知:before,属于织入方法执行前

环绕通知:around,方法执行前和执行后都有

异常通知:after-throwing,抛异常时执行,属于执行后的

返回通知:after-returning,返回时执行,属于执行后的

后置通知:after,执行后的

上面的顺序按照order顺序排列,order越小,属于执行前的执行越早,属于执行后的执行越晚。建议使用时要不使用环绕通知,要不只使用前置和后置通知,定义好order顺序,不然容易导致顺序出错,也不建议将关键步骤放在这些地方,建议使用记录log之类的功能。

 

参考文档:https://www.jianshu.com/p/82d58edceddb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值