Javassist
Javassist
      强调源代码层次操作字节码的框架Javassist。
      利用Javassist实现字节码增强时，
        可以无须关注字节码刻板的结构，其优点就在于编程简单。
        直接使用java编码的形式，而不需要了解虚拟机指令，就能动态改变类的结构或者动态生成类。
      其中最重要的是ClassPool、CtClass、CtMethod、CtField这四个类
      CtClass（compile-time class）：编译时类信息，它是一个class文件在代码中的抽象表现形式，可以通过一个类的全限定名来获取一个CtClass对象，用来表示这个类文件。
      ClassPool：从开发视角来看，ClassPool是一张保存CtClass信息的HashTable，key为类名，value为类名对应的CtClass对象。当我们需要对某个类进行修改时，就是通过pool.getCtClass(“className”)方法从pool中获取到相应的CtClass。
      CtMethod、CtField：这两个比较好理解，对应的是类中的方法和属性。
    示例
        依然是对Base中的process()方法做增强，在方法调用前后分别输出”start”和”end”
        要做的就是从pool中获取到相应的CtClass对象和其中的方法，
          然后执行method.insertBefore和insertAfter方法，参数为要插入的Java代码，
            再以字符串的形式传入即可，实现起来也极为简单。