rebeyond 师傅在参考【1】中提出利用javaagent 永久注入tomcat进程的方案,有几个重要的技术点
- javaagent技术
- javassist技术
- tomcat ApplicationFilterChain.internalDoFilter方法
- ShutdownHook 钩子
javassist技术
Java 字节码以二进制的形式存储在 .class 文件中,每一个 .class 文件包含一个 Java 类或接口。Javaassist 就是一个用来 处理 Java 字节码的类库。它可以在一个已经编译好的类中添加新的方法,或者是修改已有的方法,并且不需要对字节码方面有深入的了解。同时也可以去生成一个新的类对象,通过完全手动的方式。
javassist 相关文档可以参考【2】和【3】,以简单的javassist demo
为例