aspect声明@type

时间:2013-03-19 18:54:49

标签: aspectj declare

我正在尝试解决以下问题:我有一个像这样定义的方面:

public aspect ComponentAspect {
    declare @type : uk.co.xxx.* : @Component;
}

正如所料,它注释了“uk.co.xxx”包中的所有内容,我不需要注释此包中的所有类,只需要匹配某些模式,例如我的类以...结尾Client.java和我想要注释的这些。所以我希望这样的代码:

public aspect ComponentAspect {
    declare @type : uk.co.xxx.workflow.*Client : @Component;
}

但是因为这只是我的一厢情愿。

任何想法如何实现我的结果?

非常感谢任何想法,到目前为止,我花了2个小时没有任何进展:(

1 个答案:

答案 0 :(得分:1)

为什么一厢情愿?它按预期工作。您只需要注意使用类型模式定位的包和/或子包。

也许您真正想做的是在特定包的所有子包中定位具有特定名称的所有类。在这种情况下,您需要..语法,如下所示:

public aspect ComponentAspect {
    declare @type : uk.co.xxx.workflow..*Client : @Component;
}

我尝试过我的一个应用程序,它就像一个魅力。