java.lang.instrument 与 AspectJ

标签 java aspectj instrumentation

对于 Java 中的检测,为什么 java.lang.instrument 优于 AspectJ,尽管两者都同样完成检测工作。使用 java.lang.instrument 有什么具体的优点吗?提前致谢...

最佳答案

这是两个完全不同的事情。 Instrumentation API 提供了 JVM 运行时的 Hook ,允许 Java 代理访问 JVM 的更高级功能。它还提供了 JVM 类加载的 Hook ,在加载类并重新定义其类文件时可以通知代理。类似地,可以重新定义/重新转换已经加载的类。

AspectJ 是一个库,它提供了重新定义现有类的更高层次的 View 。它与切点和连接点一起使用来解释如何重新定义类。然后,AspectJ 的重新定义可以在 Maven 等工具的帮助下在编译时应用,或者 AspectJ 可以使用 Java Agebt 和检测 API 在运行时应用类的重新定义。

关于java.lang.instrument 与 AspectJ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36632089/

相关文章:

java - 不同结构的Jtable

spring - 方面编织应如何限制在 aop :advisor pointcuts? 引用的类中

java - 将aspectj应用于整个包而不是特定的类

c# - NHibernate、Oracle 和 sql 工具

c# - 将我的 Web 应用程序从 .Net 3.5 升级到 .Net4.0 后,出现安全透明规则失败

java - 自定义默认登录页面 Alfresco

java - 如何通过让应用程序继续执行任务而无需使用 Spring 进行过多的空检查来解决应用程序中的空指针异常

java - 如何在 JAX-RS 中注入(inject) ApplicationContext

java - 使用 build.xml 通过 ANT 构建 AspectJ 应用程序

java - 如何调试内部错误?