是否有AspectJ代码生成库(如Sun的Java代码生成代码模型)?

是否有AspectJ代码生成库(如Sun的Java代码生成代码模型)?,java,code-generation,aspectj,Java,Code Generation,Aspectj,是否有免费的库在编译时生成AspectJ代码(例如在注释处理步骤)?我正在寻找类似的东西,但要生成AspectJ代码。似乎没有这样的库 在阅读和分析codemodel的源代码之后: 使用codemodel生成纯AspectJ代码是不可能的,因为不能声明如下内容: 公共方面事务管理器{…} 无法正确扭曲JDeclaredClass项来解决1。你必须从头重写几乎所有的东西 AspectJ5引入了注释,这意味着我们可以用纯Java声明方面: @面貌 公共类事务管理器{…} @AspectJ唯一真正棘手

是否有免费的库在编译时生成AspectJ代码(例如在注释处理步骤)?我正在寻找类似的东西,但要生成AspectJ代码。

似乎没有这样的库

在阅读和分析codemodel的源代码之后:

  • 使用codemodel生成纯AspectJ代码是不可能的,因为不能声明如下内容:

    公共方面事务管理器{…}

  • 无法正确扭曲
    JDeclaredClass
    项来解决1。你必须从头重写几乎所有的东西

  • AspectJ5引入了注释,这意味着我们可以用纯Java声明方面:

    @面貌 公共类事务管理器{…}

  • @AspectJ唯一真正棘手的部分似乎是类型间声明,但提供了一个好的/可行的解决方案


  • 结论:生成AspectJ代码的特定库似乎不是必需的,只能依赖codemodel。

    我很确定没有,但我喜欢这个想法!我想我是唯一一个想出这样疯狂场景的人:——)我一直都想要这样;D分析一个类,例如使用反射,然后使用其他调用反射类方法的类。如果你能做到这一点,那就太酷了。@Angel你可以用AspectJNo和AspectJ做到这一点,我只能指定我事先知道的切入点。例如,我通过RMI获得了一门我从未听说过的课程。。。假设它有一个decodeMessage(Message)方法。如果我不知道这个方法存在或者那个类存在,我就不能描述它的切入点。@Angel如果你不知道那个方法存在,你甚至不能调用它。可能RMI类实现了一些您知道的接口,在这种情况下,您可以使用AspectJ实现。然而,我喜欢这个想法,我希望使用APT是可能的,但不幸的是,它似乎还不可能,尽管最新的ApsectJ编译器版本是Java6编译器(默认情况下应该包括APT)。