[b]AOP 的元素:连接点[/b]
连接点是在执行过程中明确定义的点,可以在这些点上应用横切代码。可用的连接点取决于所使用的特定 AOP 框架或者工具。AspectJ 拥有丰富的、动态的连接点模型。
使用 AspectJ 时,在下述情况下可有连接点:
调用一个方法
执行一个方法
调用一个异常处理程序
执行一个异常处理程序
调用一个构造函数
执行一个构造函数
读取一个字段
写入一个字段
注意调用一个方法和执行一个方法的区别。与调用一个方法关联的连接点可以访问实际调用这个方法之前的执行上下文信息。与执行一个方法关联的连接点可以访问方法正文内部的执行上下文信息。
[b]AOP 元素:切入点[/b]
要指定在什么地方和什么时候应用自己的横切代码,需要声明切入点。切入点选择一组连接点
call(signature) 调用指定的方法或者构造函数时选择连接点
execute(signature) 执行指定的方法或者构造函数时选择连接点
get(signature) 读取指定字段时选择连接点
set(signature) 写入指定的字段时选择连接点
handler(type-pattern) 执行与 Throwable 类型样式相关联的异常处理程序时选择连接点
[b]AOP 元素:通知[/b]
通知 将要应用的代码与声明的切入点所选择的连接点联系在一起。将要执行的代码放到通知中,然后用匹配连接点指定什么时候要执行它。
before() 在所选的连接点之前执行代码
after() 在所选的连接点之后执行代码
around() 在连接点处执行代码,允许根据需要结束或者跳过连接点的执行
受通知影响的代码称为 advised,通常是在匹配的连接点处。
[b]AOP 元素:类型间声明[/b]
AspectJ 可以在现有的 Java 类或者类型之中添加新成员 —— 方法和字段。
这些包含在方面中的附加声明称为类型间声明。对于受其影响的类的用户,这些新声明的成员看起来就像由原来的类或者类型直接实现一样。
[b]AOP 元素:方面[/b]
在使用 AspectJ 时,Java 编程语言被方面定义扩展了。就像定义一个类一样定义方面。
方面使您可以绑定:
切入点
通知
类型间声明
像 Java 类一样,方面可以有字段和方法(静态或者非静态)。可以创建抽象方面,就像类一样。还可以扩展类或方面,以创建新方面
链接:[url]https://www6.software.ibm.com/developerworks/cn/education/java/j-aopintro/tutorial/section3.html[/url]
连接点是在执行过程中明确定义的点,可以在这些点上应用横切代码。可用的连接点取决于所使用的特定 AOP 框架或者工具。AspectJ 拥有丰富的、动态的连接点模型。
使用 AspectJ 时,在下述情况下可有连接点:
调用一个方法
执行一个方法
调用一个异常处理程序
执行一个异常处理程序
调用一个构造函数
执行一个构造函数
读取一个字段
写入一个字段
注意调用一个方法和执行一个方法的区别。与调用一个方法关联的连接点可以访问实际调用这个方法之前的执行上下文信息。与执行一个方法关联的连接点可以访问方法正文内部的执行上下文信息。
[b]AOP 元素:切入点[/b]
要指定在什么地方和什么时候应用自己的横切代码,需要声明切入点。切入点选择一组连接点
call(signature) 调用指定的方法或者构造函数时选择连接点
execute(signature) 执行指定的方法或者构造函数时选择连接点
get(signature) 读取指定字段时选择连接点
set(signature) 写入指定的字段时选择连接点
handler(type-pattern) 执行与 Throwable 类型样式相关联的异常处理程序时选择连接点
[b]AOP 元素:通知[/b]
通知 将要应用的代码与声明的切入点所选择的连接点联系在一起。将要执行的代码放到通知中,然后用匹配连接点指定什么时候要执行它。
before() 在所选的连接点之前执行代码
after() 在所选的连接点之后执行代码
around() 在连接点处执行代码,允许根据需要结束或者跳过连接点的执行
受通知影响的代码称为 advised,通常是在匹配的连接点处。
[b]AOP 元素:类型间声明[/b]
AspectJ 可以在现有的 Java 类或者类型之中添加新成员 —— 方法和字段。
这些包含在方面中的附加声明称为类型间声明。对于受其影响的类的用户,这些新声明的成员看起来就像由原来的类或者类型直接实现一样。
[b]AOP 元素:方面[/b]
在使用 AspectJ 时,Java 编程语言被方面定义扩展了。就像定义一个类一样定义方面。
方面使您可以绑定:
切入点
通知
类型间声明
像 Java 类一样,方面可以有字段和方法(静态或者非静态)。可以创建抽象方面,就像类一样。还可以扩展类或方面,以创建新方面
链接:[url]https://www6.software.ibm.com/developerworks/cn/education/java/j-aopintro/tutorial/section3.html[/url]