《Java Agent 基础篇》,课程地址:腾讯课堂、CSDN和51CTO。(三者内容相同,只是目录有差异)
主要内容
第一章 三个组成部分
- Java Agent 概览
- Agent Jar 的三个主要组成部分
- 手工打包(一):Load-Time Agent 打印加载的类
- 手工打包(二):Load-Time Agent 打印方法接收的参数
- 手工打包(三):Dynamic Agent 打印方法接收的参数
- Maven:Load-Time Agent 和 Dynamic Agent
- Java Agent + Java Module System
- 总结
第二章 两种启动方式
第三章 Instrumentation API
- Instrumentation API
- Instrumentation.isXxxSupported()
- Instrumentation.xxxTransformer()
- Instrumentation.redefineClasses()
- Instrumentation.retransformClasses()
- redefine VS. retransform
- Instrumentation.xxxClasses()
- Instrumentation.getObjectSize()
- Instrumentation.appendToXxxClassLoaderSearch()
- Instrumentation.setNativeMethodPrefix()
- Instrumentation.redefineModule()
- InstrumentationImpl
- ClassFileTransformer
- All In One Examples
- 总结
第四章 应用与技巧
- Load-Time VS. Dynamic Agent
- None Instrumentation
- Multiple Agents
- Multiple Agents: Sandwich
- Self Attach
- JMX: JMXConnectorServer 和 JMXConnector
- JMX: management-agent.jar
- JMX: Instrumentation
- ja-netfilter 分析
Reference
Oracle
- java.lang.instrument API
- Attach API
OpenJDK