springaop术语概述及aop中常见通知的实现(前置,后置,环绕,异常)
来源:互联网 发布:淘宝怎么虚拟试穿衣服 编辑:程序博客网 时间:2024/05/21 21:01
springaop术语概述及aop中常见通知的实现(前置,后置,环绕,异常)
AOP术语概述
n 切面:需要实现的交叉功能
n 连接点:应用程序执行过程中插入切面的地点:此处可是方法调用、异常抛出甚至是要修改的字段
n 通知:通知切面的实际实现。他通知应用系统新的行为,通知在连接点插入到应用系统中
n 切入点:定义了通知应该应用在那些连接点。通常通过指定类名和方法名,或匹配类名和方法名式样的正则表达式来指定切入点。
n 引入:允许为已存在类添加新方法和属性
n 目标对象:被通知对象。即可使编写的类也可是添加定制行为的第三方类。
n 代理:将通过应用到目标对象后创建的对象。
n 织入:将通知应用到目标对象从而创建一个新的代理对象的过程。切面在指定接入点被织入到目标对象中,之如发生在目标对象生命周期的多个点上:
u 编辑器:切面在目标对象编译时织入(需特殊的编译器)
u 类装载器:切面在目标对象被载入到JVM时织入(需特殊的类加载器,在类的载入到应用系统之前增强目标对象的字节码)
u 运行期:切面在应用系统运行时织入(通常,AOP容器将在织入切面时动态生成委托目标对象的代理对象)
前置通知
public class WelcomeAdvice implements MethodBeforeAdvice{
public voidbefore(Method m,Object[] os,Object target){
Customer c =(Customer)arg[0];
System.out.println(c.getName());
}
}
---------------------------------------------
//创建目标代理对象
<bean id="kwikEMartTarget"class="…ApuKwikEMart" />
<bean id="welcomeAdvice"class="…WelcomeAdvice" />
<bean id="kwikEMart"class="……ProxyFactoryBean">
<propertyname="proxyInterfaces"><value>……KwikEMart</value></property>
<propertyname="interceptorNames">
<list><value>welcomeAdvice</value></list>
</property>
<propertyname="target"><ref bean="kwikEMartTarget"/></property>
</bean>
后置通知
public interface AfterReturningAdvice{
public void afterReturning(ObjectreturnValue,Method
m,Object[] os,Object target);
}
环绕通知
publicinterface MethodInterceptor extends Interceptor{
Object invoke(MethodInvocation invocation);
}
该接口同前两种通知有两个重要区别:1.该通知能够控制目标方法
是否真的被调用。通过invocation.proceed()方法来调用。
2.该通知可以控制返回的对象。可以返回一个与proceed()方法返回对象完全不同的对象。但要谨慎使用。
异常通知
publicinterface ThrowsAdvice{
}
该接口为标识性接口,没有任何方法,但实现该接口的类必须要有如下形
式的方法:
voidafterThrowing(Throwable throwable);
voidafterThrowing(Method m,Object[] os,Object
target,Throwablethrowable);
第一个方法只接受一个参数:需要抛出的异常。
第二个方法接受异常、被调用的方法、参数以及目标对象。
- springaop术语概述及aop中常见通知的实现(前置,后置,环绕,异常)
- Spring AOP 面向切面编程 常见通知实现(前置,后置,环绕,异常)
- springaop术语概述及aop中常见通知的实现(10级学员 庞丽课堂总结)
- Spring框架——AOP前置、后置、环绕、异常通知
- AOP的一些东西(事务的传播特性,前置,后置,环绕,异常 等各种通知)
- Aop的日志操作(前置,后置,环绕,返回,异常通知)
- SpringAOP 前置、后置、环绕增强
- Spring -- aop(面向切面编程),前置&后置&环绕&抛异常通知,引入通知,自动代理
- spring的前置通知,后置通知,环绕通知
- 9、前置、后置、环绕通知
- Spring_17-19前置通知&后置通知&返回通知&异常通知&环绕通知
- Spring3.0中的前置通知、后置通知、环绕通知、异常通知
- Spring3.0中的前置通知、后置通知、环绕通知、异常通知
- Spring aop 前置通知、后置通知、返回通知、 异常通知 、后置通知
- spring_AOP前置通知&后置通知&返回通知&环绕通知
- AOP编程之后置通知、环绕通知、异常通知、引入通知
- springAOP前置增强、后置增强、环绕增强(编程式)
- 前置,后置,环绕,异常增强(示例)
- arraylist和vector的区别
- vc++调用matlab
- 找工作的三六九等
- 在iOS4中使用代码块-基础知识
- SurfaceFlinger启动过程(图)
- springaop术语概述及aop中常见通知的实现(前置,后置,环绕,异常)
- My ADT Stack...简单数组实现
- MySQL数据库文件及数据库恢复介绍
- Linux2.6-内核同步
- .Net GridView应用:GridView 使用方法总结
- 监测Table字段被新日志
- Android display system overview
- WP7 页面 Loaded与OnNavigatedTo
- 关于网站建设的一点心得