CN112035192A - 支持组件热部署的Java类文件加载方法及装置 - Google Patents
支持组件热部署的Java类文件加载方法及装置 Download PDFInfo
- Publication number
- CN112035192A CN112035192A CN202010908816.XA CN202010908816A CN112035192A CN 112035192 A CN112035192 A CN 112035192A CN 202010908816 A CN202010908816 A CN 202010908816A CN 112035192 A CN112035192 A CN 112035192A
- Authority
- CN
- China
- Prior art keywords
- loader
- class
- java
- application
- subclass
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 20
- 238000013507 mapping Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种支持组件热部署的Java类文件加载方法及装置,其中该方法包括:构建呈树状结构的类加载器模型,其中,类加载器模型包括:父类加载器和多个子类加载器,每个子类加载器对应Java应用系统内的一个应用组件,各个子类加载器对应的应用组件之间无依赖关系;通过父类加载器加载Java应用系统内公共组件的Java类文件;通过各个子类加载器加载Java应用系统内各个应用组件的Java类文件。本发明通过构建由父类加载器和子类加载器构成的两层树状结构,使得每个应用组件对应一个子类加载器,能够支持应用系统不停机情况下应用组件的热部署,并能够实现对各个应用组件的全生命周期管理。
Description
技术领域
本发明涉及软件技术领域,尤其涉及一种支持组件热部署的Java类文件加载方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
Java编写的程序,经编译器编译后,转换为Java类文件(即class文件),再经由类加载器(即class loader)加载到Java虚拟机(Java Virtual Machine,JVM)的内存空间后,使得应用系统能够使用Java类,例如,对象的实例化、方法的调用等。
现有基于Java程序(Web程序或普通J2SE程序)开发的应用系统,由一个类加载器加载所有组件(例如,账户组件、交易组件、计息组件、会计组件等)。这种组件加载方式,当应用系统内某个组件更新的情况下,往往需要重新启动整个应用系统对该组件进行加载,无法支持组件热部署。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例中提供了一种支持组件热部署的Java类文件加载方法,用以解决现有基于Java程序开发的应用系统,由同一个类加载器加载应用系统内所有的应用组件,无法支持组件热部署的技术问题,该方法包括:构建呈树状结构的类加载器模型,其中,类加载器模型包括:父类加载器和多个子类加载器,每个子类加载器对应Java应用系统内的一个应用组件;通过父类加载器加载Java应用系统内公共组件的Java类文件;通过各个子类加载器加载Java应用系统内各个应用组件的Java类文件。
本发明实施例中还提供了一种支持组件热部署的Java类文件加载装置,用以解决现有基于Java开发的应用系统,由同一个类加载器加载应用系统内所有的应用组件,无法支持组件热部署的技术问题,该装置包括:类加载器模型构建模块,用于构建呈树状结构的类加载器模型,其中,类加载器模型包括:父类加载器和多个子类加载器,每个子类加载器对应Java应用系统内的一个应用组件;公共组件类文件加载模块,用于通过父类加载器加载Java应用系统内公共组件的Java类文件;应用组件Java类文件加载模块,用于通过各个子类加载器加载Java应用系统内各个应用组件的Java类文件。
本发明实施例中还提供了一种计算机设备,用以解决现有基于Java开发的应用系统,由同一个类加载器加载应用系统内所有的应用组件,无法支持组件热部署的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述支持组件热部署的Java类文件加载方法。
本发明实施例中还提供了一种计算机可读存储介质,用以解决现有基于Java开发的应用系统,由同一个类加载器加载应用系统内所有的应用组件,无法支持组件热部署的技术问题,该计算机可读存储介质存储有执行上述支持组件热部署的Java类文件加载方法的计算机程序。
本发明实施例中,通过构建由父类加载器和多个子类加载器构成的呈树状结构的类加载器模型,使得Java应用系统内的每个应用组件对应一个子类加载器,由父类加载器加载Java应用系统内公共组件的Java类文件,并由各个子类加载器加载Java应用系统内各个应用组件的Java类文件,与现有技术中由同一个类加载器加载应用系统内所有应用组件的技术方案相比,本发明实施例通过构建由父类加载器和子类加载器构成的两层树状结构,使得每个应用组件对应一个子类加载器,能够支持应用系统不停机情况下应用组件的热部署,并能够实现对各个应用组件的全生命周期管理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中提供的一种支持组件热部署的Java类文件加载方法流程图;
图2为本发明实施例中提供的一种应用组件启动流程图;
图3为本发明实施例中提供的一种应用组件卸载流程图;
图4为本发明实施例中提供的一种应用组件类文件访问流程图;
图5为本发明实施例中提供的类加载器模型与现有技术提供的类加载器模型的对比示意图;
图6为本发明实施例中提供的一种对应用组件热部署前后的对比示意图;
图7为本发明实施例中提供的一种支持组件热部署的Java类文件加载系统架构示意图;
图8为本发明实施例中提供的一种支持组件热部署的Java类文件加载方法的具体实现流程图;
图9为本发明实施例中提供的一种支持组件热部署的Java类文件加载装置示意图;
图10为本发明实施例中提供的一种可选的支持组件热部署的Java类文件加载装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例中提供了一种支持组件热部署的Java类文件加载方法,图1为本发明实施例中提供的支持组件热部署的Java类文件加载方法流程图,如图1所示,该方法包括如下步骤:
S101,构建呈树状结构的类加载器模型,其中,类加载器模型包括:父类加载器和多个子类加载器,每个子类加载器对应Java应用系统内的一个应用组件,各个子类加载器对应的应用组件之间无依赖关系。
需要说明的是,本发明实施例中基于二层的树状结构,构建由父类加载器和多个子类加载器构成的类加载器模型,使得应用系统内的每个应用组件对应一个子类加载器,由于各个子类加载器对应的应用组件之间无依赖关系,能够使得各个应用组件单独启停而不会影响到其他组件。本发明实施例中Java应用系统是指采用Java语言编写的各种应用或业务系统。
本发明各个实施例中以Java语言编写的银行业务系统为例进行说明。当Java应用系统为银行业务系统的情况下,应用组件可以是但不限于账户组件、交易组件、计息组件和会计组件。每个应用组件由多个Java类共同实现某项应用功能。
S102,通过父类加载器加载Java应用系统内公共组件的Java类文件。
需要说明的是,本发明实施例中为了将应用系统内的各个应用组件隔离,使得各个应用组件对应的子类加载器与父类加载器形成树状结构,需要将各个应用组件运行所依赖共同功能提取出来,由公共组件实现,因而,对于应用系统内的公共组件,直接由父类加载器加载。
S103,通过各个子类加载器加载Java应用系统内各个应用组件的Java类文件。
需要说明的是,本发明实施例中每个子类加载器对应Java应用系统内的一个应用组件,因而,各个应用组件的Java类文件可由各自对应的子类加载器加载。通过本发明实施例中提供的类加载方式,对应用系统内任意一个组件的更新,不会影响到其他组件,因而,可以实现组件的热部署。
由上可知,本发明实施例中提供的支持组件热部署的Java类文件加载方法,通过构建由父类加载器和多个子类加载器构成的呈树状结构的类加载器模型,使得Java应用系统内的每个应用组件对应一个子类加载器,由父类加载器加载Java应用系统内公共组件的Java类文件,并由各个子类加载器加载Java应用系统内各个应用组件的Java类文件。
通过本发明实施例中提供的支持组件热部署的Java类文件加载方法,能够支持应用系统不停机情况下应用组件的热部署,并能够实现对各个应用组件的全生命周期管理。
在一个实施例中,如图2所示,本发明实施例中提供的支持组件热部署的Java类文件加载方法还可以包括如下步骤:
S201,创建子类加载器集合;
S202,创建应用组件对应的子类加载器,获取应用组件与Java类文件的映射关系;
S203,将创建的子类加载器添加到子类加载器集合中;
S204,由子类加载器集合中的各个子类加载器,根据应用组件与Java类文件的映射关系,加载各个应用组件的Java类文件。
通过上述实施例,能够实现系统不停机的情况下,对组件进行安装。
在一个实施例中,如图3所示,本发明实施例中提供的支持组件热部署的Java类文件加载方法还可以包括如下步骤:
S301,获取待卸载的应用组件;
S302,根据待卸载的应用组件,更新待卸载应用组件对应的子类加载器状态;
S303,删除子类加载器集合中待卸载应用组件对应的子类加载器。
通过上述实施例,能够实现系统不停机的情况下,对组件进行卸载。
在一个实施例中,如图4所示,本发明实施例中提供的支持组件热部署的Java类文件加载方法还可以包括如下步骤:
S401,获取待访问的Java类文件;
S402,基于应用组件与Java类文件的映射关系,查询待访问Java类文件对应的子类加载器是否在子类加载器集合中;
S403,如果待访问Java类文件对应的子类加载器在子类加载器集合中,则基于查询到的子类加载器加载待访问Java类文件;
S404,如果待访问Java类文件对应的子类加载器不在子类加载器集合中,则基于父类加载器加载待访问Java类文件。
通过上述实施例,通过类加载器的加载操作,能够查找到各个组件具体的类文件。
如图5所示,将本发明实施例中提供的类加载器模型与现有技术提供的类加载器模型的对比,可以看出,现有技术提供的类加载器模型,由一层类加载器加载应用系统内所有的组件;而本发明实施例中提供的类加载器模型,由父类加载器和子类加载器构成两层树状结构,使得应用系统内的每个应用组件对应一个子类加载器,能够提供更细粒度的组件加载,并实现对各个应用组件从创建、访问、卸载整个生命周期的管理。
图6为本发明实施例中提供的一种对应用组件热部署前后的对比示意图,如图6所示,将账户组件对应的子类加载器1从父类加载器中删除;增加新的子类加载器5,加载新的“账户组件”;从而达到在不停止应用系统的情况下,更新“账户组件”的目的。
图7为本发明实施例中提供的一种支持组件热部署的Java类文件加载系统架构示意图,如图7所示,本发明实施例中提供的支持组件热部署的Java类文件加载系统架构包括三层结构,分别为:
第1层:框架模块,对应父类加载器,负责管理子类加载器集合,能够生成两层树状结构的类加载器信息;
第2层:组件管理器模块,对应子类加载器,负责管理各个应用组件的状态,能够生成类与组件的映射关系;
第3层:应用组件,为普通的jar包,即应用系统内的各个组件,例如,公共组件、账户组件、交易组件等。
图8为本发明实施例中提供的一种支持组件热部署的Java类文件加载方法的具体实现流程图,如图8所示,具体包括:
①组件启动:框架初始化后,首先创建一个空的组件管理器集;然后创建组件管理器;接着解析具体的应用组件,形成类和组件的映射关系,最后将该组件管理器放入集合当中完成组件的加载;
②组件卸载:更新组件管理器的状态,同时从集合中删除;
③访问类文件:通过前面的类和组件的映射关系,查询待访问类对应的子类加载器,如果该类不在任何子类加载器中,则通过父类加载器加载该类;如果该类在某个子类加载器中,通过该子类加载器加载该类。
需要说明的是,利用上述①和②能够完成不同应用组件的安装和卸载,通过这两项功能的组合可以完成组件的热部署。热部署实际上等于“卸载A组件”,“装载A组件”两个动作的组合完成。利用上述③能够通过类加载器的加载操作,找到各个应用组件具体的类文件。公共组件由父类加载器加载;其他应用组件由子类加载器加载。组件由不同的类加载器管理加载,这样类加载器管理的组件粒度更细了,利于热部署的灵活。
本发明实施例中提供的基于两层类加载器的Java类文件加载方案,能够支持应用系统在不停机情况下的热部署,即各个应用组件的热插拔。假设应用系统里某个应用组件的性能存在问题,或急需修复一个应用组件的bug。采用本发明实施例提供的两层类加载器模型,能够实现组件的秒级更新,而不是像现有技术提供的一层类加载器模型,需要执行耗时费力的如下三步骤:1)停止系统,2)打包应用,3)启动系统。
基于同一发明构思,本发明实施例中还提供了一种支持组件热部署的Java类文件加载装置,如下面的实施例所述。由于该装置解决问题的原理与支持组件热部署的Java类文件加载方法相似,因此该装置的实施可以参见支持组件热部署的Java类文件加载方法的实施,重复之处不再赘述。
图9为本发明实施例中提供的一种支持组件热部署的Java类文件加载装置示意图,如图9所示,该装置包括:类加载器模型构建模块91、公共组件类文件加载模块92和应用组件类文件加载模块93。
其中,类加载器模型构建模块91,用于构建呈树状结构的类加载器模型,其中,类加载器模型包括:父类加载器和多个子类加载器,每个子类加载器对应Java应用系统内的一个应用组件,各个子类加载器对应的应用组件之间无依赖关系;公共组件类文件加载模块92,用于通过父类加载器加载Java应用系统内公共组件的Java类文件;应用组件类文件加载模块93,用于通过各个子类加载器加载Java应用系统内各个应用组件的Java类文件。
由上可知,本发明实施例中提供的支持组件热部署的Java类文件加载装置,由类加载器模型构建模块91构建由父类加载器和多个子类加载器构成的呈树状结构的类加载器模型,使得Java应用系统内的每个应用组件对应一个子类加载器;由公共组件类文件加载模块92通过父类加载器加载Java应用系统内公共组件的Java类文件;由应用组件类文件加载模块93通过各个子类加载器加载Java应用系统内各个应用组件的Java类文件。
通过本发明实施例中提供的支持组件热部署的Java类文件加载装置,能够支持应用系统不停机情况下应用组件的热部署,并能够实现对各个应用组件的全生命周期管理。
在一个实施例中,如图10所示,本发明实施例中提供的Java类文件加载装置还可以包括:应用组件启动模块94,用于执行如下步骤的功能:创建子类加载器集合;创建应用组件对应的子类加载器,获取应用组件与Java类文件的映射关系;将创建的子类加载器添加到子类加载器集合中;由子类加载器集合中的各个子类加载器,根据应用组件与Java类文件的映射关系,加载各个应用组件的Java类文件。
在一个实施例中,如图10所示,本发明实施例中提供的Java类文件加载装置还可以包括:应用组件卸载模块95,用于执行如下步骤的功能:获取待卸载的应用组件;根据待卸载的应用组件,更新待卸载应用组件对应的子类加载器状态;删除子类加载器集合中待卸载应用组件对应的子类加载器。
在一个实施例中,如图10所示,本发明实施例中提供的Java类文件加载装置还可以包括:类文件访问模块96,用于执行如下步骤的功能:获取待访问的Java类文件;基于应用组件与Java类文件的映射关系,查询待访问Java类文件对应的子类加载器是否在子类加载器集合中;如果待访问Java类文件对应的子类加载器在子类加载器集合中,则基于查询到的子类加载器加载待访问Java类文件;如果待访问Java类文件对应的子类加载器不在子类加载器集合中,则基于父类加载器加载待访问Java类文件。
基于同一发明构思,本发明实施例中还提供了一种计算机设备,用以解决现有基于Java开发的应用系统,由同一个类加载器加载应用系统内所有的应用组件,无法支持组件热部署的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述支持组件热部署的Java类文件加载方法。
基于同一发明构思,本发明实施例中还提供了一种计算机可读存储介质,用以解决现有基于Java开发的应用系统,由同一个类加载器加载应用系统内所有的应用组件,无法支持组件热部署的技术问题,该计算机可读存储介质存储有执行上述支持组件热部署的Java类文件加载方法的计算机程序。
本发明实施例中,通过构建由父类加载器和多个子类加载器构成的呈树状结构的类加载器模型,使得Java应用系统内的每个应用组件对应一个子类加载器,由父类加载器加载Java应用系统内公共组件的Java类文件,并由各个子类加载器加载Java应用系统内各个应用组件的Java类文件,与现有技术中由同一个类加载器加载应用系统内所有应用组件的技术方案相比,本发明实施例通过构建由父类加载器和子类加载器构成的两层树状结构,使得每个应用组件对应一个子类加载器,能够支持应用系统不停机情况下应用组件的热部署,并能够实现对各个应用组件的全生命周期管理。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种支持组件热部署的Java类文件加载方法,其特征在于,包括:
构建呈树状结构的类加载器模型,其中,所述类加载器模型包括:父类加载器和多个子类加载器,每个子类加载器对应Java应用系统内的一个应用组件;
通过父类加载器加载所述Java应用系统内公共组件的Java类文件;
通过各个子类加载器加载所述Java应用系统内各个应用组件的Java类文件。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
创建子类加载器集合;
创建应用组件对应的子类加载器,获取应用组件与Java类文件的映射关系;
将创建的子类加载器添加到所述子类加载器集合中;
由所述子类加载器集合中的各个子类加载器,根据应用组件与Java类文件的映射关系,加载各个应用组件的Java类文件。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
获取待卸载的应用组件;
根据待卸载的应用组件,更新待卸载应用组件对应的子类加载器状态;
删除所述子类加载器集合中待卸载应用组件对应的子类加载器。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
获取待访问的Java类文件;
基于应用组件与Java类文件的映射关系,查询待访问Java类文件对应的子类加载器是否在所述子类加载器集合中;
如果待访问Java类文件对应的子类加载器在所述子类加载器集合中,则基于查询到的子类加载器加载所述待访问Java类文件;
如果待访问Java类文件对应的子类加载器不在所述子类加载器集合中,则基于父类加载器加载所述待访问Java类文件。
5.一种支持组件热部署的Java类文件加载装置,其特征在于,包括:
类加载器模型构建模块,用于构建呈树状结构的类加载器模型,其中,所述类加载器模型包括:父类加载器和多个子类加载器,每个子类加载器对应Java应用系统内的一个应用组件;
公共组件类文件加载模块,用于通过父类加载器加载所述Java应用系统内公共组件的Java类文件;
应用组件Java类文件加载模块,用于通过各个子类加载器加载所述Java应用系统内各个应用组件的Java类文件。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:应用组件启动模块,用于执行如下步骤的功能:
创建子类加载器集合;
创建应用组件对应的子类加载器,获取应用组件与Java类文件的映射关系;
将创建的子类加载器添加到所述子类加载器集合中;
由所述子类加载器集合中的各个子类加载器,根据应用组件与Java类文件的映射关系,加载各个应用组件的Java类文件。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:应用组件卸载模块,用于执行如下步骤的功能:
获取待卸载的应用组件;
根据待卸载的应用组件,更新待卸载应用组件对应的子类加载器状态;
删除所述子类加载器集合中待卸载应用组件对应的子类加载器。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:类文件访问模块,用于执行如下步骤的功能:
获取待访问的Java类文件;
基于应用组件与Java类文件的映射关系,查询待访问Java类文件对应的子类加载器是否在所述子类加载器集合中;
如果待访问Java类文件对应的子类加载器在所述子类加载器集合中,则基于查询到的子类加载器加载所述待访问Java类文件;
如果待访问Java类文件对应的子类加载器不在所述子类加载器集合中,则基于父类加载器加载所述待访问Java类文件。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述支持组件热部署的Java类文件加载方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至4任一项所述支持组件热部署的Java类文件加载方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010908816.XA CN112035192B (zh) | 2020-09-02 | 2020-09-02 | 支持组件热部署的Java类文件加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010908816.XA CN112035192B (zh) | 2020-09-02 | 2020-09-02 | 支持组件热部署的Java类文件加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035192A true CN112035192A (zh) | 2020-12-04 |
CN112035192B CN112035192B (zh) | 2024-02-23 |
Family
ID=73591408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010908816.XA Active CN112035192B (zh) | 2020-09-02 | 2020-09-02 | 支持组件热部署的Java类文件加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035192B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064215A (zh) * | 2021-11-25 | 2022-02-18 | 中国建设银行股份有限公司 | 动态部署模块化的方法、设备、装置及计算机程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7721277B1 (en) * | 2004-06-08 | 2010-05-18 | Oracle America, Inc. | Hot deployment of shared modules in an application server |
CN106055356A (zh) * | 2016-05-25 | 2016-10-26 | 东软集团股份有限公司 | 控制资源访问的方法及装置 |
CN108363612A (zh) * | 2018-03-07 | 2018-08-03 | 江苏电力信息技术有限公司 | 基于类装载器实现的j2ee模块热部署及调用信息统计方法 |
CN110750307A (zh) * | 2019-09-04 | 2020-02-04 | 北京旷视科技有限公司 | 一种微服务架构构建方法及装置 |
-
2020
- 2020-09-02 CN CN202010908816.XA patent/CN112035192B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7721277B1 (en) * | 2004-06-08 | 2010-05-18 | Oracle America, Inc. | Hot deployment of shared modules in an application server |
CN106055356A (zh) * | 2016-05-25 | 2016-10-26 | 东软集团股份有限公司 | 控制资源访问的方法及装置 |
CN108363612A (zh) * | 2018-03-07 | 2018-08-03 | 江苏电力信息技术有限公司 | 基于类装载器实现的j2ee模块热部署及调用信息统计方法 |
CN110750307A (zh) * | 2019-09-04 | 2020-02-04 | 北京旷视科技有限公司 | 一种微服务架构构建方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064215A (zh) * | 2021-11-25 | 2022-02-18 | 中国建设银行股份有限公司 | 动态部署模块化的方法、设备、装置及计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN112035192B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853774B2 (en) | Dynamically loaded plugin architecture | |
US10795660B1 (en) | Live code updates | |
US10353704B2 (en) | Prevention of classloader memory leaks in multitier enterprise applications | |
US8286154B2 (en) | Apparatus and method for live loading of version upgrades in a process control environment | |
JP5367074B2 (ja) | 仮想マシンとアプリケーション・ライフ・サイクルの同期 | |
US20090259999A1 (en) | Method and system for applying a patch during application execution | |
US8959321B1 (en) | Fast restart on a virtual machine | |
WO2022111097A1 (zh) | 一种文件更新方法及装置、设备、存储介质 | |
CN101095111A (zh) | 一种维护计算装置中的应用程序的方法 | |
KR20110098567A (ko) | 최소 부트 이미지의 생성 방법 및 장치 | |
US20090249311A1 (en) | Sharing a native module of compiled code using an abstraction module of interpreted code in a virtual machine environment | |
US20080133861A1 (en) | Silent memory reclamation | |
CN113238819B (zh) | 一种适用于U-Boot的驱动文件动态加载方法及系统 | |
CN104731622A (zh) | 一种应用程序的加载方法、装置和移动终端 | |
CN103309696B (zh) | 一种Java卡扩展库更新方法、装置和Java卡 | |
CN112035192B (zh) | 支持组件热部署的Java类文件加载方法及装置 | |
CN117707543A (zh) | 一种应用安装包制作和安装方法、计算设备及存储介质 | |
US9841982B2 (en) | Locating import class files at alternate locations than specified in classpath information | |
US20090210865A1 (en) | System and methods for replacing software application classes using transparent object adapters | |
CN115220873A (zh) | 一种在Android系统中运行Open Harmony应用的方法 | |
CN113326077A (zh) | 一种配置文件的加载方法及装置 | |
US20070250807A1 (en) | Method, system and memory for replacing a module | |
CN111737964A (zh) | 表格动态处理方法、设备及介质 | |
JP2013105349A (ja) | 動的リンクライブラリの更新、実行方法 | |
CN107632934B (zh) | 一种C-sharp中函数复制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |