Java GWT应用程序的客户端AOP选项

Java GWT应用程序的客户端AOP选项,java,gwt,aop,Java,Gwt,Aop,如果能够定义我自己的方法拦截器(advice)并将它们编织到我的客户端GWT方法中,并让GWT自动将它们编译成JavaScript和我的应用程序的其余部分,那就太好了 我查看了gwt-ent,但自2009年以来,它似乎并没有得到可靠的发展,出现了很多问题。我也听说过gwt tiny aop,但听说它非常有限 我还有其他选择吗?我知道AOP需要动态字节码生成,而动态字节码生成又需要大量的反射,而且GWT不支持(而且似乎不鼓励)反射实践,但我想知道是否有稳定的、众所周知的用于GWT的AOP库。至少我

如果能够定义我自己的方法拦截器(advice)并将它们编织到我的客户端GWT方法中,并让GWT自动将它们编译成JavaScript和我的应用程序的其余部分,那就太好了

我查看了
gwt-ent
,但自2009年以来,它似乎并没有得到可靠的发展,出现了很多问题。我也听说过gwt tiny aop,但听说它非常有限

我还有其他选择吗?我知道AOP需要动态字节码生成,而动态字节码生成又需要大量的反射,而且GWT不支持(而且似乎不鼓励)反射实践,但我想知道是否有稳定的、众所周知的用于GWT的AOP库。至少我可以用一些东西来编写AOP联盟,比如拦截器:

public class MyInterceptor implements MethodInterceptor {
    @Override
    public void onIntercept(MethodInvocation mi) {
        // Do some stuff...

        // Let the method execute
        Object results = mi.proceed();

        // Analyze results...

        // Returns results
        return results;
}

您可以使用GWT生成器:


为什么不使用javascript(包装在JSNI中)来模拟这种行为?类似于?这主意不错……当然是一个候选方案,但如果有可能的话,仍然会选择Java解决方案。要将AOP与GWT结合使用,您必须在将源代码传递给GWT之前对其进行处理,而不是传递字节码。谢谢@ThomasBroyer(+1)-您能否解释一下“传递源代码”的含义,并提供一个代码示例?再次感谢!我的意思是创建新的源代码,将拦截器合并到原始方法中。然后,您可以将这些增强的源代码传递给GWT编译器。@IAmYourFaja:这是所有涉及或依赖于GWT客户端代码上的反射API的答案。。。相信我,只有用发电机才能做到这一点。