发明名称 |
基于预加载机制的插件支持方法 |
摘要 |
本发明涉及基于预加载机制的插件支持方法,其包括以下步骤:1主程序启动并加载插件运行框架,由插件运行框架负责读取外部插件;2插件运行框架为外部插件启动独立类加载器,类加载器加载插件中的类型,并将类型保存到全局缓存中;3插件运行框架获取主程序当前的类加载器,将主程序当前类的加载器的父加载器替换为原父加载器的代理类,原父加载器的代理类会拦截所有发给原始类加载器的类型加载调用;4当主程序请求调用Class类型时,按照类型名称先从原父加载器中查找Class类型,若没有找到目标类型,再从全局缓存中匹配是否有对应的插件提供的类型,若匹配成功,则直接加载执行,反之,则抛出异常。 |
申请公布号 |
CN104679572A |
申请公布日期 |
2015.06.03 |
申请号 |
CN201510136737.0 |
申请日期 |
2015.03.26 |
申请人 |
北京神舟航天软件技术有限公司 |
发明人 |
倪永全;单承方;耿建光;温小龙 |
分类号 |
G06F9/445(2006.01)I |
主分类号 |
G06F9/445(2006.01)I |
代理机构 |
北京世誉鑫诚专利代理事务所(普通合伙) 11368 |
代理人 |
孙国栋 |
主权项 |
基于预加载机制的插件支持方法,其特征在于,包括以下步骤:(1)、主程序启动同时加载插件运行框架,由插件运行框架负责读取所有外部插件;(2)、插件运行框架为每个外部插件分别启动独立的类加载器,类加载器各自加载插件中的类型,并将加载后得到的类型保存到全局缓存中;(3)插件运行框架获取主程序当前的类加载器,通过反射修改主程序当前的加载器的父加载器,将主程序当前类的加载器的父加载器替换为原父加载器的代理类,原父加载器的代理类会拦截所有发给原始类加载器的类型加载调用;(4)、当主程序请求调用Class类型时,按照类型名称先从原父加载器中查找Class类型,若没有找到目标类型,再从全局缓存中匹配是否有对应的插件提供的类型,若匹配成功,则直接加载执行,反之,则抛出异常。 |
地址 |
100094 北京市海淀区永丰路28号 |