给方法逐渐添加Java注释?

3
有没有一种方法可以修改.class文件,以便为某些方法添加Java注释?基本上,我想遍历jar文件中每个类文件的方法并注释某些方法。请注意,这不是在使用jar文件时运行时。相反,完成后,我希望具有已注释的修改后的类文件。

我可以访问源代码,因此如果有自动源代码修改器,那也可以...

我假设我需要像JavassistASM这样的工具。如果是这样,请问我应该使用哪一个,并且如何去做?

通过向.class文件的方法字段添加适当的属性,可以实现这一点。虽然我没有使用工具来完成这项任务的太多经验。 - templatetypedef
希望有人能尽快回答,这很令人鼓舞。 :) - Epaga
2个回答

8

实际上,这是AspectJ的一个经典用例:

declare @method : public * BankAccount+.*(..) : @Secured(role="supervisor")

虽然直接的字节码操作更加强大,但AspectJ更加易用,并且在你做错事情时立即给出编译器警告。
此外,如果您使用Load Time Weaving,则可以保持原始库jar不变,因为织入发生在类加载时。 参考资料:

4
在谷歌上搜索了一个小时左右,找到了这篇文章,它似乎完全回答了我的问题:使用ASM。要使用更改后的字节码编写类文件,请使用ClassWriter
好的,那么是时候开始工作了,我猜。 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接