java - 向方法中主动添加 Java 注释?

标签 java annotations bytecode-manipulation java-bytecode-asm

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

我确实可以访问源代码,所以如果有一个自动源代码修改器,那也可以...

我假设我需要一个工具,例如 JavassistASM .如果是这样,我应该使用哪一个,我将如何处理?

最佳答案

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

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

虽然我会承认直接字节码操作更强大,但 AspectJ 更加用户友好,并且当您做错事情时它会立即向您发出编译器警告。

此外,如果您使用 Load Time Weaving ,您可以保留原始库 jar 不变,因为编织发生在类加载时。

引用:

关于java - 向方法中主动添加 Java 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4826946/

相关文章:

java - xml解析器配置文件

c# - 从 RSA 公钥中提取数据

java - 如何在运行时使用 JVMTI 获取类文件(规范格式)?

Java:列出方法中使用的字段

android - jack and jill for android 兼容字节码编织吗?

java - 使用 `sessionFactory` 和 `transactionManager` 解决 Spring 中的循环依赖问题

java - 故障排除和修复死锁

java - 使用 Java 注释计算排列

java - 基于 Spring 注释的 DI 与 xml 配置?

annotations - 什么时候在 Typed Racket 中使用 `form:`?