`
rsljdkt
  • 浏览: 451800 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

AspectJ学习笔记之pointcut

阅读更多

参考】《AspectJ in Acton 2nd Edition

【说明】本文仅总结一些概念

 

连接点模型(join point model

连接点模型包括两个部分:
joinpoints:程序的执行点
pointcuts:选择joinpoints的机制

概念:
join point:系统中可标志的程序的执行点,如方法的调用,字段的访问,for循环或者是if 语句都是joinpoint(AspectJ只支持前两个)
pointcut:用于选择joinpoint和收集连接点上下文的程序元素.

 

连接点分类:

Asper支持一下连接点分类:

1Method join points:两种:executioncall
  方法执行连接点包括:方法体内的所有可执行块
  方法调用连接点包括:方法调用处(注意:构成方法参数的那段代码不是该连接点的一部分)

2Constructor join points
  除了它代表构造方法外,和Method join points 完全类似,也分为callexecution两种

3Field access join points:分为read access 和 write access两种
  注意:AspectJ提供 instance  variablesclass  variables (static fields)field连接点,不提供局部变量的连接点

4Exception-handler join points:类型:handler
  连接点包括:try-catch语句的整个catch

5Class-initiallization join points:类型:class initialization
  该连接点包括:类的加载、类的所有static语句块[若有的话]

6Object-initialization join points:类型:object initialization
  连接点包括:从父类构造器的返回到第一个被调用的构造器的结束
  用途:提供额外的初始化工作,比如依赖注入等。springdomain-object依赖注入(@configurable)就是通过这种方式实现的
7Object pre-initialization:类型:Object pre-initialization

  连接点包括:从第一个构造器的调用到父构造器的开始
  说明:很少使用

8advice execution join points:类型:execution
  说明:不建议使用

 

<!--EndFragment-->

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics