所以我试图在我的应用程序中使用AOP进行日志记录和一些错误处理。 大多数人推荐使用aspectj,所以我的问题是为什么aspectj要求我安装一个eclipse插件才能使用它? 不是aspectj只是在运行时使用反射来修改类吗?
我们也在使用构建服务器,我是否需要在构建服务器上安装任何东西才能使用aspectj运行项目?
答案 0 :(得分:4)
除非您特别希望Eclipse具有方面感知能力,并且在其内部构建过程中包含AspectJ功能,否则它不会。 (IMO IDE对AOP的支持非常棒,并且使AOP更容易处理。单独的天沟标记值得入场。)
AspectJ修改字节码;你无法通过纯粹的反思来做它所做的事情,
您的构建服务器需要适当的库。如果您正在进行编译时编织,则需要将其添加到构建脚本中。
答案 1 :(得分:2)
Aspect-J使用代理通过所谓的加载时编织来修改类。这是必需的,因为java代理只能使用接口。代理使用附加(字节)代码扩充类。
编辑:插件通常提供额外的功能来定义和审核点剪切和加入点。
答案 2 :(得分:1)
不,你不需要任何插件来编译/运行使用AOP编写的代码。
而是需要在编译/运行应用程序时添加类路径信息。
例如,您可以查看here。它使用ant添加了aspectj jar来运行这个例子。并且它无需插件即可运行AspectJ代码。
关于插件& eclipse:这是关于让eclipse想法理解AspectJ代码而不是混淆为无效的java代码。
答案 3 :(得分:0)
如果你有一个Maven项目,你只需要使用一些依赖项来使用Aspect。 我正在使用Netbeans并使用AspectJ,它运行得很好。没有可安装的插件。