Spring AOP中的 ‘通知’

来张图简单理解一下代理

一个环绕通知,jdk里的

Spring支持六中通知

Spring中的通知类型
通知名称接口描述
前置通知

org.springframework.aop.

MethodBeforeAdvice

通过前置通知,可以在连接点执行之前做自定义处理。虽然可以完全访问调用的目标和方法参数,但控制不了方法的执行。可以抛出异常终止执行;

 实例

后置返回通知

org.springframework.aop.

AfterReturningAdvice

调用方法执行完毕并返回值后执行该通知,后置返回通知可以访问调用目标、方法参数、返回值。无法控制方法的调用。目标方法抛出异常,将直接传回堆栈,不执行后置返回通知;(毕竟是跟返回值有关的吗!!)

实例

后置通知

org.springframework.aop.

AfterAdvice

后置通知后置返回通知类似;

不同的地方:

后置返回通知不关心返回值;

即使目标方法抛出异常后置通知照常执行;(很是霸道啊!)

 

环绕通知

org.springframework.aop.

MethodInterceptor

spring的环绕通知使用AOP Alliance标准建模。环绕通知在调用方法前后都可以执行,可以控制方法调用点(可以绕过方法);

实例

异常通知

org.springframework.aop.

ThrowsAdvice

异常通知只有在方法调用抛出异常后执行。只捕获特定异常,在实现ThrowsAdvice接口中定义名为afterThrowing方法接收抛出异常,该方法需用public修饰;

void afterThrowing([Method, args, target], ThrowableSubclass);

该方法前3个参数可选;

实例

引入通知

org.springframework.aop.

IntroductionInterceptor

spring引入建模为特殊类型的拦截器。通过使用引入拦截器,可以指定由引入通知引入的方法的实现;

实例

通知接口关系图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值