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. 外层实例化对象并放入缓存汇总
