一种应用类加载方法、装置及web应用类加载器的制造方法

文档序号:9865265阅读:138来源:国知局
一种应用类加载方法、装置及web应用类加载器的制造方法
【技术领域】
[0001]本发明涉及计算机应用技术领域,尤其涉及一种应用类加载方法、装置及web应用类加载器。
【背景技术】
[0002]目前,对于以javax.开头的类,应用服务器中的类加载器会委托父加载器进行类加载,应用服务器自身具有各种版本的以javax.开头的类,应用服务器所要部署或迀移的应用也会引入各种版本的以javax.开头的类。可见,应用服务器的类与应用服务器待部署或迀移的应用的类有可能是同名类,例如都是以javax.开头的类。
[0003]在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
由于应用服务器会优先加载自身的类,而不是所要部署或迀移的应用的类,所以当应用服务器的类与应用服务器待部署或迀移的应用的类是同名类时,会导致类加载所加载的不是所要部署或迀移的应用的类,而是应用服务器所具有的同名类,从而导致应用部署失败;另外,应用服务器的类与待部署或迀移的应用的类也会存在二者属于版本不同的同名类,此时会导致类冲突问题,从而也会造成应用部署或迀移失败。

【发明内容】

[0004]本发明提供的应用类加载方法、装置及web应用类加载器,其通过动态可配置的类加载机制,能够灵活控制类加载方式,从而高效、便捷地完成应用的部署或迀移。
[0005]第一方面,本发明提供一种应用类加载方法,包括:
获取类加载请求,所述类加载请求中包括请求加载类的类名;
根据请求加载类的类名,判断所述请求加载类是否需要委托父加载器进行加载; 如果是,则将所述请求加载类发送至所述父加载器;
如果否,则自身加载所述请求加载类。
[0006]可选地,所述根据请求加载类的类名,判断所述请求加载类是否需要委托父加载器进行加载包括:
读取不需要所述父加载器进行加载类的类名集合;
判断所读取的类名集合中是否包含所述请求加载类的类名,如果是,则表明所述请求加载类需要自身加载;如果否,则表明所述请求加载类需要委托所述父加载器进行加载。
[0007]第二方面,本发明提供一种应用类加载装置,包括获取模块、判断模块、发送模块和加载模块,其中,
所述获取模块,用于获取类加载请求,所述类加载请求中包括请求加载类的类名;所述判断模块,用于根据请求加载类的类名,判断所述请求加载类是否需要委托父加载器进行加载;
所述发送模块,用于当所述判断模块的判断结果为是时,将所述请求加载类发送至所述父加载器; 所述加载模块,用于当所述判断模块的判断结果为否时,加载所述请求加载类。
[0008]可选地,所述判断模块包括读取单元和判断单元,其中,
所述读取单元,用于读取不需要所述父加载器进行加载类的类名集合;
所述判断单元,用于判断所读取的类名集合中是否包含所述请求加载类的类名,如果是,则表明所述请求加载类需要自身加载;如果否,则表明所述请求加载类需要委托所述父加载器进行加载。
[0009]第三方面,本发明提供一种web应用类加载器,所述web应用类加载器包括上述任一项所述的应用类加载装置。
[0010]本发明实施例提供的应用类加载方法、装置及web应用类加载器,与现有技术相比,其通过动态可配置的类加载机制,能够灵活控制类加载方式,即在加载之前先通过读取不需要委托父加载器进行加载的类的类名集合,来确定所请求加载类的加载方式,即自身加载或委托父加载器进行加载,从而高效、便捷地完成应用的部署或迀移。
【附图说明】
[0011]图1为本发明一实施例应用类加载方法的流程图;
图2为本发明另一实施例应用类加载方法的流程图;
图3为本发明一实施例应用类加载装置的结构示意图;
图4为本发明另一实施例应用类加载装置的结构示意图。
【具体实施方式】
[0012]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0013]本发明提供一种应用类加载方法,如图1所示,所述方法包括:
SI 1、获取类加载请求,所述类加载请求中包括请求加载类的类名;
512、根据请求加载类的类名,判断所述请求加载类是否需要委托父加载器进行加载; 如果是,则转入步骤S13;如果否,则转入步骤S14 ;
513、将所述请求加载类发送至所述父加载器;
514、自身加载所述请求加载类。
[0014]本发明实施例提供的应用类加载方法,与现有技术相比,其通过动态可配置的类加载机制,能够灵活控制类加载方式,从而高效、便捷地完成应用的部署或迀移。
[0015]可选地,如图2所示,所述步骤SI 2具体可以包括:
5121、读取不需要所述父加载器进行加载类的类名集合;
5122、判断所读取的类名集合中是否包含所述请求加载类的类名,如果是,则表明所述请求加载类需要自身加载;如果否,则表明所述请求加载类需要委托所述父加载器进行加载。
[0016]本发明实施例提供的应用类加载方法,与现有技术相比,其通过动态可配置的类加载机制,能够灵活控制类加载方式,即在加载之前先通过读取不需要委托父加载器进行加载的类的类名集合,来确定所请求加载类的加载方式,即自身加载或委托父加载器进行加载,从而高效、便捷地完成应用的部署或迀移。
[0017]在所述请求加载类完成加载后,可以通过查看加载路径来知晓所请求加载类是委托父加载器进行的加载,还是进行的自身加载。
[0018]本发明实施例还提供一种应用类加载装置,如图3所示,所述装置包括获取模块
21、判断模块22、发送模块23和加载模块24,其中,
所述获取模块21,用于获取类加载请求,所述类加载请求中包括请求加载类的类名;所述判断模块22,用于根据请求加载类的类名,判断所述请求加载类是否需要委托父加载器进行加载;
所述发送模块,用于当所述判断模块的判断结果为是时,将所述请求加载类发送至所述父加载器;
所述加载模块,用于当所述判断模块的判断结果为否时,加载所述请求加载类。
[0019]本发明实施例提供的应用类加载装置,与现有技术相比,其通过动态可配置的类加载机制,能够灵活控制类加载方式,从而高效、便捷地完成应用的部署或迀移。
[0020]可选地,如图4所示,所述判断模块22包括读取单元221和判断单元222,其中, 所述读取单元221,用于读取不需要所述父加载器进行加载类的类名集合;
所述判断单元222,用于判断所读取的类名集合中是否包含所述请求加载类的类名,如果是,则表明所述请求加载类需要自身加载;如果否,则表明所述请求加载类需要委托所述父加载器进行加载。
[0021]本发明实施例提供的应用类加载装置,与现有技术相比,其通过动态可配置的类加载机制,能够灵活控制类加载方式,即在加载之前先通过读取不需要委托父加载器进行加载的类的类名集合,来确定所请求加载类的加载方式,即自身加载或委托父加载器进行加载,从而高效、便捷地完成应用的部署或迀移。
[0022]本发明实施例还提供一种web应用类加载器,所述web应用类加载器包括上述任一项所述的应用类加载装置。
[0023]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
[0024]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
【主权项】
1.一种应用类加载方法,应用于web应用类加载器中,其特征在于,包括: 获取类加载请求,所述类加载请求中包括请求加载类的类名; 根据所述请求加载类的类名,判断所述请求加载类是否需要委托父加载器进行加载; 如果是,则将所述请求加载类发送至所述父加载器; 如果否,则自身加载所述请求加载类。2.根据权利要求1所述的方法,其特征在于,所述根据请求加载类的类名,判断所述请求加载类是否需要委托父加载器进行加载包括: 读取不需要所述父加载器进行加载类的类名集合; 判断所读取的类名集合中是否包含所述请求加载类的类名,如果是,则表明所述请求加载类需要自身加载;如果否,则表明所述请求加载类需要委托所述父加载器进行加载。3.一种应用类加载装置,应用于web应用类加载器中,其特征在于,包括获取模块、判断模块、发送模块和加载模块,其中, 所述获取模块,用于获取类加载请求,所述类加载请求中包括请求加载类的类名;所述判断模块,用于根据所述请求加载类的类名,判断所述请求加载类是否需要委托父加载器进行加载; 发送模块,用于当所述判断模块的判断结果为是时,将所述请求加载类发送至所述父加载器; 加载模块,用于当所述判断模块的判断结果为否时,加载所述请求加载类。4.根据权利要求3所述的装置,其特在于,所述判断模块包括读取单元和判断单元,其中, 所述读取单元,用于读取不需要所述父加载器进行加载类的类名集合; 所述判断单元,用于判断所读取的类名集合中是否包含所述请求加载类的类名,如果是,则表明所述请求加载类需要自身加载;如果否,则表明所述请求加载类需要委托所述父加载器进行加载。5.一种web应用类加载器,其特征在于,所述web应用类加载器包括权利要求3-4任一项所述的应用类加载装置。
【专利摘要】本发明提供一种应用类加载方法、装置及web应用类加载器。所述方法包括:获取类加载请求,所述类加载请求中包括请求加载类的类名;根据所述请求加载类的类名,判断所述请求加载类是否需要委托父加载器进行加载;如果是,则将所述请求加载类发送至所述父加载器;如果否,则自身加载所述请求加载类。本发明通过动态可配置的类加载机制,能够灵活控制类加载方式,从而高效、便捷地完成应用的部署或迁移。
【IPC分类】G06F9/445
【公开号】CN105630540
【申请号】CN201510960904
【发明人】乔景军, 高隆林, 韩峰, 何忠胜, 赵欣, 李得亮
【申请人】山东中创软件工程股份有限公司
【公开日】2016年6月1日
【申请日】2015年12月21日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1