【问题标题】:I am searching for a specific pointcut in AspectJ我正在寻找 AspectJ 中的特定切入点
【发布时间】:2015-03-10 12:43:33
【问题描述】:

行:

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”之后发生?

【问题讨论】:

    标签: java aspectj pointcut


    【解决方案1】:

    不,因为你的代码行相当于:

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

    即两个字段访问(首先读取,然后写入)一个接一个地完成。以“流畅”的方式链接它们只是语法糖。顺便说一句,如果你的Test 类可以直接访问Address 成员,无论如何你有一个封装问题,但这只是个人意见。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多