doctorvian 2020-04-24
1.触发创建动态代理类
private Class<?> createAdaptiveExtensionClass() { String code = createAdaptiveExtensionClassCode(); ClassLoader classLoader = findClassLoader(); com.alibaba.dubbo.common.compiler.Compiler compiler = ExtensionLoader.getExtensionLoader(com.alibaba.dubbo.common.compiler.Compiler.class).getAdaptiveExtension(); return compiler.compile(code, classLoader); }
2. 生成Compiler工具loader
3. 初始化JavassistCompiler辅助使用对字节码文件的操纵
AdaptiveCompiler.compile(code,classLoader)
执行doCompile方法-使用javassist方法创建对应的class文件
4. 外层实例化对象并放入缓存汇总