Spring-Aspect - 查找方法调用堆栈是否具有特定的包类

时间:2015-06-01 16:26:20

标签: java spring-aspects

我对Spring-Aspect很新。事实上,我只需要修复,而以前从未实现过方面。 所以,我有以下课程(不是真名:D):

    Validate中的
  1. com.my调用
  2. ValidateService调用
  3. DAO
  4. 我需要的是一个方面,只有在调用DAO方法(例如addcreate等)来自{Validate时,才会调用此方面{1}}课程。如下所示:

    * com.my..*.*(..) - > ValidateService.validate() - > [可能涉及其他一些类别] - > DAO.add(..)

    所以我对这部分感兴趣:

    * com.my..*.*(..) - > [无论如何] - > DAO.add(..)

    尝试withincallexecute,但没有运气。有人可以帮忙吗? 使用Spring Aspect 1.7.0

    非常感谢提前。

1 个答案:

答案 0 :(得分:0)

自从我编写AspectJ切入点已经过去几年了,但我认为您缺少使用[{"code":"034","value":1},{"code":"036","value":1},{"code":"042","value":43},{"code":"045","value":18},{"code":"088","value":33},{"code":"120","value":3},{"code":"148","value":1},{"code":"154","value":3},{"code":"212","value":6},{"code":"250","value":1},{"code":"266","value":11},{"code":"308","value":4},{"code":"347","value":2},{"code":"360","value":6},{"code":"390","value":4},{"code":"001","value":147},{"code":"490","value":6},{"code":"579","value":1},{"code":"649","value":1},{"code":"736","value":1},{"code":"792","value":6},{"code":"837","value":10},{"code":"858","value":1},{"code":"890","value":4},{"code":"895","value":2}] 切入点描述符。它需要一个参数,这本身就是切入点。当执行位于传入的切入点的控制流(cflow)下时,切入点将解析为true。

所以,你想做这样的事情:

client.example.com

我可能有一些语法混乱。所以,看看关于cflow的文档,但上面是基本的想法。