首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AspectJ -为什么使用注释而不是ajc编译器?

AspectJ -为什么使用注释而不是ajc编译器?
EN

Stack Overflow用户
提问于 2011-05-24 04:37:23
回答 2查看 2.7K关注 0票数 4

我们既可以使用@AspectJ注解风格来定义方面,也可以使用ajc扩展语言,这需要我们使用AspectJ编译器。

人们想要使用注释样式而不是ajc的原因是什么?在我看来,使用注解风格放弃了很多功能,但除了不必使用ajc (必须使用ajc有什么不好)之外,并没有获得多少(如果有的话)。

有人能在这个话题上给我一些启发吗?

EN

回答 2

Stack Overflow用户

发布于 2011-05-24 04:45:18

这两种风格(.aj@AspectJ)都有另一种风格无法实现的功能。

请参阅这篇文章,了解声明式AspectJ无法实现的注释功能:What is the AspectJ declaritive syntax for overwritting an argument

大多数情况下(除了上面提到的),.aj文件可以做得更多。最值得注意的是,他们可以做ITD(Inter-Type-Definition,也就是向类添加方法和属性)。

您希望使用@AspectJ的最大原因是,如果您使用Spring代理AOP支持,那么它甚至不需要编译时编织(CTW),甚至不需要加载时(LTW)。Spring将模仿@AspectJ,但在运行时通过创建代理来实现。

我注意到Spring、Eclipse (和我自己)似乎都在鼓励更多地使用真正的AspectJ。我相信这是因为Eclipse插件变得如此之好。同样,使用真正的AspectJ和@Configurable注解,您可以在实例化的bean上进行Spring连接。这就是Spring Roo的工作原理。

使用Eclipse插件,您可以看到对这两种样式(@和aj)的切入点引用,并清楚地了解发生了什么“魔术”。

票数 4
EN

Stack Overflow用户

发布于 2011-05-24 05:09:01

在构建过程中添加一些额外的步骤并不是最简单、最好的方法。尤其是当你有一个大项目的时候。你放弃了所有的java工具和集成开发环境的支持,它们可能不支持*.aj语法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6102746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档