码迷,mamicode.com
首页 > 其他好文 > 详细

Dubbo-动态编译

时间:2020-04-24 00:58:49      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:comm   find   ring   ssis   ima   extension   缓存   class   pil   

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

技术图片

 

Dubbo-动态编译

标签:comm   find   ring   ssis   ima   extension   缓存   class   pil   

原文地址:https://www.cnblogs.com/huan30/p/12757894.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!