每个应用都是执行main方法启动,javaagent使应用在执行main方法之前调用premain方法,
而在premain方法里classloader加载类时使用javassist对字节码进行改写,对原方法进行增强,
这就形成了监控,类似Spring AOP,而Spring AOP的底层就是动态代理,CGLIB动态代理采用javassist实现。
APM系统实现原理
最新推荐文章于 2024-07-26 18:08:08 发布
每个应用都是执行main方法启动,javaagent使应用在执行main方法之前调用premain方法,
而在premain方法里classloader加载类时使用javassist对字节码进行改写,对原方法进行增强,
这就形成了监控,类似Spring AOP,而Spring AOP的底层就是动态代理,CGLIB动态代理采用javassist实现。