我在AspectJ中搜索特定的切入点

时间:2015-01-12 17:10:43

标签: java aspectj pointcut

该行:

test.address.postal_code = "12345";

将产生如下流程:

before-get test.address
    return test.address
after-get test.address
before-set test.address.postal_code
    set postal_code
after-set test.address.postal_code
在AspectJ中

。 是否存在将测试作为目标的切入点(如before-get test.adddres和after-get test.address),但是会在“after-set test.address.postal_code”之后发生?

1 个答案:

答案 0 :(得分:1)

不,因为您的代码行等同于:

Object address = test.address;
address.postal_code = "12345";

即。两个字段访问(首先读取,然后写入)一个接一个地完成。像你一样以“流利”的方式链接它们只是语法糖。顺便说一句,如果您的Test课程可以直接访问Address成员,那么您无论如何都会遇到封装问题,但这只是个人评论。

如果你想知道地址是否被分配给另一个类的成员,你需要在方面内保持状态,这可能但有点脏。也许你想改变应用程序设计,而不是修复糟糕的设计与hacky方面。的; - )