作者:微信小助手
发布时间:2023-04-04T09:03:53
熟悉Spring的小伙伴们应该都对aop比较了解,面向切面编程允许我们在目标方法的前后织入想要执行的逻辑,而今天要给大家介绍的Java Agent技术,在思想上与aop比较类似,翻译过来可以被称为Java代理、Java探针技术。 Java Agent出现在JDK1.5版本以后,它允许程序员利用agent技术构建一个独立于应用程序的代理程序,用途也非常广泛,可以协助监测、运行、甚至替换其他JVM上的程序,先从下面这张图直观的看一下它都被应用在哪些场景: 看到这里你是不是也很好奇,究竟是什么神仙技术,能够应用在这么多场景下,那今天我们就来挖掘一下,看看神奇的Java Agent是如何工作在底层,默默支撑了这么多优秀的应用。 回到文章开头的类比,我们还是用和aop比较的方式,来先对Java Agent有一个大致的了解: 下面我们就分别看一下在两种模式下,如何动手实现一个agent代理程序。 Premain模式允许在主程序执行前执行一个agent代理,实现起来非常简单,下面我们分别实现两个组成部分。 先写一个简单的功能,在主程序执行前打印一句话,并打印传递给代理的参数:
preMain
模式在主程序运行前执行,jdk1.6提供的
agentMain
在主程序运行后执行
Premain模式
agent