最近接触了下javassist,试着进行字节码操纵,javassist的上手还是比较简单,官方文档说的很详细,而且例子也给的蛮多。
传送门:Javassist官方文档地址
下面是自己写的一个方法,其中生成了一个经典的Spring的controller类。具体写法如下,代码已经贴上了注释。
public void makeclass(String className,String methodName, CONSTANTS.INVOKETYPE invoketype,String interfaceCode) throws NotFoundException, CannotCompileException, IOException {
ClassPool pool = ClassPool.getDefault();
CtClass clazz = pool.makeClass(className);
ClassFile ccFile = clazz.getClassFile();
ConstPool constpool = ccFile.getConstPool();
CtClass executor = pool.get("com.javassist.test.Executor");
CtClass requst = pool.get("javax.servlet.http.HttpServletRequest")