Java字节码增强技术

动态编译 关于这个问题,我们需要先了解下Java的运行原理,一般情况下,打开惯用的IDE, 编写Java源代码,再利用IDE提供的功能直接运行Java 程序就可以了。这就行了,但是, 如果你的代码在运行之前不能确定呢(就像OJ)?或者说,你写过JavaBean,你知道写那些setter||getter 方法是多么的蛋疼,大多数的时间和代码都浪费在这些上面了。人生可贵,所以我们需要用更少的时间 写完我们的代码,用更多的时间去陪我们的妹子。 所以在这边,我介绍一种比较简单的代码解决办法。一种办法是动态编译代码,用机器去补充代码, 然后动态编译,之后就可以看到完整的代码了,这个办法很类似于play框架, 关于动态编译代码,我这边有几个办法,第一个就是使用JDK6之后自带的API进行简单的实现。以下就是一个简单的办法: ... [阅读全文]

有关Java的动态代理

很早之前就知道Java的代理,同时也在设计模式这本书中了解了代理模式。于是开始尝试基于Java原生特性进行动态代理。 代理的很大的一个好处就是解耦合,通过这种手段,可以使程序有很好的可读性,而且在模块化上有着更好的实现,其实在Spring框架中,他所使用的AOP,很大程度上也是基于动态代理的方式进行的。 对于我们自己编写的代理类,我们可以随意的进行字节码的操操作,方便我们进行字节码的增强。有关字节码的增强,我会在下一篇日志中进行详细的描述。 现在先说一个使用ClassLoader的代理模式的简单例子。 我们现在有一个接口。接口中的代码如下: 这边是我的实现类代码,如下: 这是我的主函数,同时也是执行代理的主要内容: ... [阅读全文]