一、AspectJ是什么
AspectJ(即AOP,面向切面编程)
二、典型应用
安全策略问题
三、AOP术语
pointcut(切点):
通过正则表达式选出一组我们感兴趣的执行点,或者说是程序执行点的集合
joinpoint(连接点):
通过pointcut选取出来的集合中的具体的一个执行点,即程序运行中的某个执行点,比如方法的调用、异常的抛出等。比如方法doSome();
advice(what to do): 通知,定义了由切点选择的连接点的横切动作,即某个连接点所采用的处理逻辑,也就是向连接点注入的代码。例如:输出的日志信息 就是一个Advice,主要包含
1、before advice(前置通知)
2、after advice
a. after finally
b. after returning
c. after throwing
3、around advice(环绕通知)
aspect(抽象概念):
Aspects wrap up pointcuts, advice, and inter-type declarations in a a modular unit of crosscutting implementation. It is defined very much like a class, and can have methods, fields, and initializers in addition to the crosscutting members. Because only aspects may include these crosscutting members, the declaration of these effects is localized.
target:被aspectj横切的对象。我们所说的joinPoint就是Target的某一行,如方法开始执行的地方、方法类调用某个其他方法的代码。
AspectJ(即AOP,面向切面编程)
二、典型应用
安全策略问题
三、AOP术语
pointcut(切点):
通过正则表达式选出一组我们感兴趣的执行点,或者说是程序执行点的集合
joinpoint(连接点):
通过pointcut选取出来的集合中的具体的一个执行点,即程序运行中的某个执行点,比如方法的调用、异常的抛出等。比如方法doSome();
advice(what to do): 通知,定义了由切点选择的连接点的横切动作,即某个连接点所采用的处理逻辑,也就是向连接点注入的代码。例如:输出的日志信息 就是一个Advice,主要包含
1、before advice(前置通知)
2、after advice
a. after finally
b. after returning
c. after throwing
3、around advice(环绕通知)
aspect(抽象概念):
Aspects wrap up pointcuts, advice, and inter-type declarations in a a modular unit of crosscutting implementation. It is defined very much like a class, and can have methods, fields, and initializers in addition to the crosscutting members. Because only aspects may include these crosscutting members, the declaration of these effects is localized.
target:被aspectj横切的对象。我们所说的joinPoint就是Target的某一行,如方法开始执行的地方、方法类调用某个其他方法的代码。