CN115543546A - 一种基于Spring的模块热部署方法及系统 - Google Patents
一种基于Spring的模块热部署方法及系统 Download PDFInfo
- Publication number
- CN115543546A CN115543546A CN202211487097.4A CN202211487097A CN115543546A CN 115543546 A CN115543546 A CN 115543546A CN 202211487097 A CN202211487097 A CN 202211487097A CN 115543546 A CN115543546 A CN 115543546A
- Authority
- CN
- China
- Prior art keywords
- module
- spring
- unique identifier
- spring container
- container
- 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
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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- 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
-
- 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/44594—Unloading
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及模块化技术领域,公开了一种基于Spring的模块热部署方法及系统,所述方法包括以下步骤:创建新的Spring容器和新的类加载器;基于所述类加载器加载待部署模块的JAR文件,并对其配置文件进行解析,得到所述待部署模块的唯一标识符;将所述待部署模块装载至所述Spring容器,并基于所述唯一标识符命名所述Spring容器。本发明通过为待加载模块创建单独的类加载器和Spring容器,实现了类之间以及模块之间的隔离,解决了可能的包冲突、类冲突问题。
Description
技术领域
本发明属于模块化技术领域,尤其涉及一种基于Spring的模块热部署方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
对于一个复杂应用程序,传统系统都是将功能进行划分成Web层(controller)、Service层(业务层)、Dao层(数据库持久化层),在功能模块数量比较大情况下,难免多个功能模块存在一些依赖关系,造成模块之间高度耦合,无法实现模块解耦分离,使得模块的复用性降低。因此,出于长远角度考虑,通常根据模块业务逻辑不同,将系统进行业务模块划分,即对业务模块进行解耦,实现模块独立和复用性。在大型软件开发过程中,通常会推荐底层功能插件化、业务功能模块化的开发模式,以期达到低耦合、高内聚、功能复用的优点。
目前模块化实现方式如下几种方式:
(1)基于代码组织的模块化。在开发期间,将不同功能代码放在不同的Java工程下,在编译器被打进不同JAR文件,在运行期,所有Java类都在一个Classpath下,这种实现方式很容易出现由于不同Java工程下JAR文件版本不一致,导致的JAR文件冲突问题。
(2)通过实例隔离实现模块化。借用Spring容器上下文来做不同功能模块的隔离,在开发和编译期间,代码和配置分布在不同的Java功能中,在运行期间,不同模块的Springbean(Spring管理Java对象)相互不可见,DI(依赖注入)只会在同一Spring上下文内部发生。这种方式无法解决类的隔离问题,业务模块加载无法解决在不重启的情况下加载新的业务模块;不改造线上的环境情况进行直接访问新加载的业务模块,无法做到模块的访问的灵活配置。
(3)基于类加载器(Classloader)实现模块化。每个模块都有独立的类加载器,模块之间的类路径(Classpath)不同,基于这种方式无法解决加载jvm内存的类在同一Spring容器中类的隔离。
发明内容
为克服上述现有技术的不足,本发明提供了一种基于Spring的模块热部署方法及系统,通过为待加载模块创建单独的类加载器和Spring容器,实现了类之间以及模块之间的隔离,解决了可能的包冲突、类冲突问题。
为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:
一种基于Spring的模块热部署方法,包括以下步骤:
创建新的Spring容器和新的类加载器;
基于所述类加载器加载待部署模块的JAR文件,并对其配置文件进行解析,得到所述待部署模块的唯一标识符;
将所述待部署模块装载至所述Spring容器,并基于所述唯一标识符命名所述用于区分不同Spring容器。
进一步地,当所述模块被调用时,宿主应用基于所述唯一标识符调用对应的Spring容器,获取其中的类。
进一步地,若所述模块的配置文件中包括URL路径映射,将所述URL路径和模块的唯一标识符均同步至宿主应用的Spring容器中。
进一步地,当所述模块被调用时,基于所述模块的唯一标识符确定相应URL,根据所述URL定位对应的Spring容器,获取其中的类。
进一步地,若所述模块的配置文件中包括与类绑定的业务场景标签,将所述业务场景标签和模块唯一标识符均同步至宿主应用的Spring容器中;
进一步地,当所述模块被调用时,根据所述业务场景标签查找相应Spring容器,获取所需类。
一个或多个实施例提供了一种基于所述模块热部署方法的模块卸载方法,基于所述唯一标识符获取待卸载模块对应的类加载器和Spring容器,执行删除。
一个或多个实施例提供了一种基于Spring的模块热部署系统,包括:
新模块监测单元,用于创建新的Spring容器和新的类加载器;
新模块加载单元,用于基于所述类加载器加载待部署模块的JAR文件,并对其配置文件进行解析,得到所述待部署模块的唯一标识符;将所述待部署模块装载至所述Spring容器,并基于所述唯一标识符命名所述Spring容器。
进一步地,当所述模块被调用时,宿主应用基于所述唯一标识符调用对应的Spring容器,获取其中的类。
进一步地,还包括模块卸载单元,用于基于所述唯一标识符获取所述模块对应的类加载器和Spring容器,执行删除。
以上一个或多个技术方案存在以下有益效果:
通过借助类隔离和容器隔离加载模块,实现了类之间以及模块之间的隔离,解决了可能的包冲突、类冲突问题、不重启宿主应用情况实现业务模块部署;
并且,基于上述加载方式,使得模块的调用和类的调用能够通过多种方式执行,满足各种应用场景。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明一个或多个实施例中基于Spring的模块热部署方法流程图;
图2为本发明一个或多个实施例中宿主应用与模块之间调用示意图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
术语解释:
模块(插件):模块是通过对同类产品的功能和结构进行分析,而分解出来并通过标准化方法得出的具有典型性的部件,这个典型性正是模块具有广泛通用性的基础。模块就是代码和数据的封装体,其中,代码部分包括Java源代码和第三方jar文件;而模块的数据部分则包括资源文件和其他静态信息,包括模块配置文件、Spring配置文件和模块标识等信息。
类加载器(ClassLoader):负责动态加载Java类到Java虚拟机的内存空间中,通常由JVM(Java Virtual Machine,Java虚拟机)提供。基本职责就是根据类的二进制名(binary name)读取Java编译器编译好的字节码文件(.Class文件),并且转化生成一个Java.lang.Class类的一个实例。这样的每个实例用来表示一个Java类,jvm就是用这些实例来生成Java对象的。
Spring容器:是Spring框架的核心。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁。Spring的核心是容器,而容器并不唯一,框架本身提供了很多个容器的实现,主要分为两种类型:一种是BeanFactory,能提供基本的DI(依赖注入)功能;还有一种就是继承了BeanFactory后派生而来的应用上下文(即下文所称Spring上下文),其抽象接口为ApplicationContext,能提供更多企业级的服务,例如解析配置文本信息等。
实施例一
本实施例的目的是在单体应用架构下,能够在不重启情况下就能把代码部署到环境上。为了实现上述目的,本实施例提供了一种基于Spring的模块热部署方法,基于宿主应用进行模块的管理,并基于宿主应用定义公共业务及其公共接口、定义类加载模型、定义底层模块加载运行机制,当发现模块需要进行加载卸载时,宿主应用利用定义模块加载运行机制,在不重启宿主应用的情况下,进行加载和卸载模块。模块均配置与宿主应用公共接口通信的接口,以及多个模块功能,或称业务功能。所述模块热部署方法,包括以下步骤:
步骤1:宿主应用运行过程中,当发现新的模块需要加载时,创建新的Spring容器,及一个或多个类加载器;所述类加载器的数量与所述模块中业务功能的数量相同;
步骤2:基于所述一个或多个类加载器,将待部署模块JAR文件中的Class类加载到Java虚拟机;并对其配置文件进行解析,得到所述待部署模块的唯一标识符;
步骤3:将已加载至Java虚拟机中的类装载至所述Spring容器,并基于所述唯一标识符命名所述Spring容器。
此技术基于Spring进行实现模块的加载,所以模块开发过程天然支持Spring相关的技术,支持Spring mvc Springboot等技术模块单独部署,但是需要通过打包方式将模块打包成宿主应用可以识别的jar 或者zip、Classes文件,进行识别。具体地,当宿主应用正在运行时,对于要加载的模块,将其编译成JAR文件再进行上传。宿主应用发现新上传的JAR文件时,即进行类加载器和Spring容器的创建。
所述步骤2中对配置文件进行解析具体包括:读取其中的模块ID、模块名以及特定配置项,例如连接的数据库信息,若连接的数据库信息与当前宿主应用的数据库信息不同,还需进行关联配置。
本领域技术人员可以理解,将所述待部署模块装载至所述Spring容器时,所述待部署模块相应的配置文件均同步至该Spring容器中。基于上述处理,新部署到系统中的模块能够灵活地被调用以及进行通信。
本实施例提取模块ID作为待部署模块的唯一标识符,并将其作为前缀,对相应Spring容器进行命名,从上层实现了Spring容器与容器之间的区分,并且更便于后续的类通信。
宿主应用通过生成新的Spring容器和新的类加载器进行待部署模块的装载。一方面,采用新创建的类加载器将加载模块中的类(Class)加载到JVM内存中,由于和宿主应用使用的不同类加载器,在对模块中的类进行加载时,即便存在与宿主应用中同名的类,也能够实现加载。通过这种方式解决了宿主应用与模块、模块与模块之间的类隔离问题。另一方面,通过新创建的Spring容器装载待部署项目,将加载到jvm中的模块初始化到Spring容器中,就是通过Spring上下文将模块中的类加载其中,因为不同Spring上下文中的bean都是隔离的,所以也解决了模块之间的隔离问题。
上述过程即实现了上文所称模块加载运行机制,基于该机制,便于实现各种应用场景下模块之间的加载和通信。
所述方法还包括步骤4:当所述模块被调用时,宿主应用基于所述唯一标识符获取装载bean的Spring容器,通过找到Spring容器获取加载的类,进行调用该模块的业务功能。具体地,采用JVM(Java虚拟机)进程调用的方式。由于宿主应用定义公共接口,通过对各个模块进行调用实现相应功能,因此,各个模块都是依赖于宿主应用的。如上文所述,待部署模块和宿主应用是加载到不同的Spring容器中的,宿主应用管理各个模块的情况下,也是可以管理各个Spring上下文,宿主应用能够通过模块唯一标识符来找到Spring上下文。本实施例中,由于模块对应的Spring容器基于模块唯一标识符命名,所以宿主应用通过模块唯一标识符即可查找到所述模块对应的Spring容器,从而获取所述模块中的类。
当所述模块被其他模块调用时,也是通过宿主应用提供获取Spring上下文的静态类,即通过模块唯一标识符找到对应的Spring容器,从而获取所述模块中的类。
所述步骤2中,若所述模块的配置文件中还包括调用所述模块的请求映射(requestmapping)URL(统一资源定位符)路径映射,还将所述URL路径和模块唯一标识符均同步至宿主应用的Spring容器Springmvc handlerMapping中,所述URL与模块唯一标识符绑定,宿主应用基于模块唯一标识符确定相应URL,基于URL即可快速定位对应的Spring容器,从而获取所需模块,请求其中的资源,即采用RPC(远程过程调用)方式。
当所述模块被其他模块调用时,也通过宿主应用获取该模块的URL路径,访问该URL获取该模块中的资源。
作为一种更为具体的实施方式,所述步骤2中,若模块配置文件中还包括与模块绑定的业务场景标签,将所述业务标签和模块唯一标识符均同步至宿主应用的Spring容器中,且所述业务标签和模块唯一标识符绑定。宿主应用接收特定业务场景下模块的调用指令,根据所述业务场景标签查找相应Spring容器,再基于Spring容器中类的业务场景标签获取所需类,若查找到的Spring容器不唯一,还根据模块唯一标识符确定Spring容器。其中,所述业务标签为单层级或多层级,单层级仅包含场景标签,多层级包含场景标签,以及一级或多级业务标签,以便于应对更为细化的客户需求,多层级标签例如“审批-请假审批”。
为方便理解,宿主应用运行时会有个主界面,主界面上各个菜单项下不同的子菜单均对应不同的模块,假设宿主应用为OA系统,其中已运行各类应用场景,现将请假应用场景的模块加载到了系统中,当用户点选对应请假模块的菜单时,宿主应用会根据“请假”这一业务场景标签查找到包含“请假”这一标签的对应模块的Spring容器,然后基于该Spring容器中类的应用标签获取所需的业务模块类。
如上文所述,主要包括三类调用方式:一是直接基于模块ID调用;二是通过将URL路径注册到宿主应用的Spring容器,基于URL路径访问获取;三是通过与类绑定的场景标签,在给定场景需求时,基于场景标签获取对应模块,从而获取其中的类。可以看出,通过对实例化的类,以及容器与容器之间均进行隔离,能够通过多种方式进行类之间的通信,满足各种调用需求。
对于第一种方式,直接基于模块ID进行调用,模块的装载效率更高,尤其适用于需要同时装载多个模块的场景。例如请假模块和人员模块,请假模块需调用人员模块获取人员信息业务类,此时,需要通过装载人员模块Spring容器,获取人员信息的Service,由于宿主应用存在公共接口,每一个模块都会依赖宿主应用的所述公共模块API接口,直接获取到Service类调用人员查询的接口。
对于第二种方式,通过将URL路径注册到宿主应用的Spring容器,基于URL路径访问获取,加载模块时无须访问宿主应用,即能够直接访问新装载业务模块。在宿主应用装载业务模块时,将业务模块中标注@controller的类的请求映射(requestmapping)进行装载,并且在装载时,增加了模块的唯一标识符以区分其他模块,在前端配置对应的URL,在请求到宿主应用时解析出唯一标识符,查找对应Spring容器,再执行对应的业务功能。
对于第三种方式,通过与类绑定的场景标签,在给定场景需求时,基于场景标签获取对应模块,从而获取其中的类,主要是解决公共接口不存在新的模块接口时,通过业务场景标签来访问和装载业务模块,通过场景ID和模块唯一标识符,找到对应的业务模块类进行执行业务功能,宿主应用提供统一接口,通过传递场景ID和模块的唯一标识符参数,根据模块唯一标识符的参数找到装载业务模块Spring容器,然后通过场景ID获取模块的场景业务类(Service类),执行对应业务功能。
由于通过模块ID、场景标签等建立了宿主应用与各模块之间的管理,可以看出还实现了宿主应用对模块的管理,无需重启宿主应用就能够管理模块的安装、卸载、启用、停止、备份、删除等。
实施例二
基于实施例一提供的模块热部署方法,本实施例提供了一种基于该热部署方法的卸载方法。包括:宿主应用基于所述唯一标识符获取待卸载模块对应的类加载器和Spring容器,执行删除。
实施例三
基于上述实施例一和二,本实施例的目的是提供一种模块热部署系统。所述系统包括:
新模块监测单元,用于宿主应用运行过程中,当发现新的模块需要加载时,创建新的Spring容器和新的类加载器;
新模块加载单元,用于基于所述类加载器加载待部署模块的JAR文件,并对其配置文件进行解析,得到所述待部署模块的唯一标识符;将所述待部署模块装载至所述Spring容器,并基于所述唯一标识符命名所述Spring容器;
模块调用单元,用于当模块被调用时,宿主应用基于所述唯一标识符调用对应的Spring容器,获取其中的类;
模块卸载单元,用于基于所述唯一标识符获取所述模块对应的类加载器和Spring容器,执行删除。
以上各模块的实现具体参见实施例一和二相关部分。
以上一个或多个实施例将系统分割多个模块,使用不同类加载器将多个JAR文件中同名类进行类与类之间的隔离,解决类加载问题,防止出现包冲突及其依赖冲突。在大型软件开发过程中,通常会推荐底层功能插件化,业务功能模块化的开发模式,以期达到低耦合、高内聚、功能复用的优点。以上方法通过定义模块规范对待部署模块进行打包,使得宿主应用能够识别该模块,解决了Class包冲突问题,并且实现了模块之间的隔离,能够在宿主应用不重启的情况下进行模块加载。每个模块可以独立运行,且具有独自数据源进行操作数据库。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种基于Spring的模块热部署方法,其特征在于,包括以下步骤:
创建新的Spring容器和新的类加载器;
基于所述类加载器加载待部署模块的JAR文件,并对其配置文件进行解析,得到所述待部署模块的唯一标识符;
将所述待部署模块装载至所述Spring容器,并基于所述唯一标识符命名所述Spring容器。
2.如权利要求1所述的基于Spring的模块热部署方法,其特征在于,当所述模块被调用时,宿主应用基于所述唯一标识符调用对应的Spring容器,获取其中的类。
3.如权利要求1所述的基于Spring的模块热部署方法,其特征在于,若所述模块的配置文件中包括URL路径映射,将所述URL路径和模块的唯一标识符均同步至宿主应用的Spring容器中。
4.如权利要求3所述的基于Spring的模块热部署方法,其特征在于,当所述模块被调用时,基于所述模块的唯一标识符确定相应URL,根据所述URL定位对应的Spring容器,获取其中的类。
5.如权利要求1所述的基于Spring的模块热部署方法,其特征在于,若所述模块的配置文件中包括与所述唯一标识符绑定的业务场景标签,将所述业务场景标签和模块唯一标识符均同步至宿主应用的Spring容器中。
6.如权利要求5所述的基于Spring的模块热部署方法,其特征在于,当所述模块被调用时,根据所述业务场景标签查找相应Spring容器,获取所需类。
7.一种基于如权利要求1-6任一项所述模块热部署方法的模块卸载方法,其特征在于,基于所述唯一标识符获取待卸载模块对应的类加载器和Spring容器,执行删除。
8.一种基于Spring的模块热部署系统,其特征在于,包括:
新模块监测单元,用于创建新的Spring容器和新的类加载器;
新模块加载单元,用于基于所述类加载器加载待部署模块的JAR文件,并对其配置文件进行解析,得到所述待部署模块的唯一标识符;将所述待部署模块装载至所述Spring容器,并基于所述唯一标识符命名所述Spring容器。
9.如权利要求8所述的基于Spring的模块热部署系统,其特征在于,当所述模块被调用时,宿主应用基于所述唯一标识符调用对应的Spring容器,获取其中的类。
10.如权利要求8所述的基于Spring的模块热部署系统,其特征在于,还包括模块卸载单元,用于基于所述唯一标识符获取所述模块对应的类加载器和Spring容器,执行删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211487097.4A CN115543546B (zh) | 2022-11-25 | 2022-11-25 | 一种基于Spring的模块热部署方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211487097.4A CN115543546B (zh) | 2022-11-25 | 2022-11-25 | 一种基于Spring的模块热部署方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115543546A true CN115543546A (zh) | 2022-12-30 |
CN115543546B CN115543546B (zh) | 2023-06-23 |
Family
ID=84719698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211487097.4A Active CN115543546B (zh) | 2022-11-25 | 2022-11-25 | 一种基于Spring的模块热部署方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543546B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116149790A (zh) * | 2023-02-15 | 2023-05-23 | 北京景安云信科技有限公司 | 一种基于减少JVM进程启动多个Springboot项目的方法 |
CN117785228A (zh) * | 2024-02-22 | 2024-03-29 | 恒生电子股份有限公司 | 应用部署方法以及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090119674A1 (en) * | 2007-11-06 | 2009-05-07 | Bea Systems, Inc. | Common handler framework |
US20090276769A1 (en) * | 2008-04-30 | 2009-11-05 | Springsource Limited | Computer System and a Method of Deploying an Application in a Computer System |
CN102360308A (zh) * | 2011-09-29 | 2012-02-22 | 用友软件股份有限公司 | 组件的分布式部署系统和方法 |
CN105389186A (zh) * | 2015-11-20 | 2016-03-09 | 福建亿榕信息技术有限公司 | 一种Java应用的热部署方法及系统 |
CN105404524A (zh) * | 2014-09-15 | 2016-03-16 | 阿里巴巴集团控股有限公司 | Java应用中的类加载隔离方法及装置 |
CN105900059A (zh) * | 2014-01-21 | 2016-08-24 | 甲骨文国际公司 | 用于在应用服务器、云或其它环境中支持多租户的系统和方法 |
CN106815056A (zh) * | 2017-02-17 | 2017-06-09 | 银联国际有限公司 | 基于jcl框架的应用热部署方法和装置 |
US20170249171A1 (en) * | 2016-02-25 | 2017-08-31 | Brocade Communications Systems, Inc. | Runtime Configuration of Servlet Filtering Using Dynamic Injection |
CN108319482A (zh) * | 2018-02-11 | 2018-07-24 | 北京恒华伟业科技股份有限公司 | 一种JavaWeb模块管理方法及装置 |
CN108363612A (zh) * | 2018-03-07 | 2018-08-03 | 江苏电力信息技术有限公司 | 基于类装载器实现的j2ee模块热部署及调用信息统计方法 |
-
2022
- 2022-11-25 CN CN202211487097.4A patent/CN115543546B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090119674A1 (en) * | 2007-11-06 | 2009-05-07 | Bea Systems, Inc. | Common handler framework |
US20090276769A1 (en) * | 2008-04-30 | 2009-11-05 | Springsource Limited | Computer System and a Method of Deploying an Application in a Computer System |
CN102360308A (zh) * | 2011-09-29 | 2012-02-22 | 用友软件股份有限公司 | 组件的分布式部署系统和方法 |
CN105900059A (zh) * | 2014-01-21 | 2016-08-24 | 甲骨文国际公司 | 用于在应用服务器、云或其它环境中支持多租户的系统和方法 |
CN105404524A (zh) * | 2014-09-15 | 2016-03-16 | 阿里巴巴集团控股有限公司 | Java应用中的类加载隔离方法及装置 |
CN105389186A (zh) * | 2015-11-20 | 2016-03-09 | 福建亿榕信息技术有限公司 | 一种Java应用的热部署方法及系统 |
US20170249171A1 (en) * | 2016-02-25 | 2017-08-31 | Brocade Communications Systems, Inc. | Runtime Configuration of Servlet Filtering Using Dynamic Injection |
CN106815056A (zh) * | 2017-02-17 | 2017-06-09 | 银联国际有限公司 | 基于jcl框架的应用热部署方法和装置 |
CN108319482A (zh) * | 2018-02-11 | 2018-07-24 | 北京恒华伟业科技股份有限公司 | 一种JavaWeb模块管理方法及装置 |
CN108363612A (zh) * | 2018-03-07 | 2018-08-03 | 江苏电力信息技术有限公司 | 基于类装载器实现的j2ee模块热部署及调用信息统计方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116149790A (zh) * | 2023-02-15 | 2023-05-23 | 北京景安云信科技有限公司 | 一种基于减少JVM进程启动多个Springboot项目的方法 |
CN116149790B (zh) * | 2023-02-15 | 2023-11-21 | 北京景安云信科技有限公司 | 一种基于减少JVM进程启动多个Springboot项目的方法 |
CN117785228A (zh) * | 2024-02-22 | 2024-03-29 | 恒生电子股份有限公司 | 应用部署方法以及装置 |
CN117785228B (zh) * | 2024-02-22 | 2024-05-28 | 恒生电子股份有限公司 | 应用部署方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115543546B (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111596969B (zh) | 一种基于微内核加插件式的软件架构方法 | |
CN115543546B (zh) | 一种基于Spring的模块热部署方法及系统 | |
US9811360B2 (en) | Dynamic determination of application server runtime classloading | |
CN101470621B (zh) | 虚拟机配置系统 | |
CN110912724B (zh) | 一种基于参数驱动的自动业务编排方法及装置 | |
US8151277B2 (en) | Method and system for dynamic remote injection of in-process agents into virtual machine based applications | |
US7908580B2 (en) | Connecting an integrated development environment with an application instance | |
CN105657191B (zh) | 一种基于Android系统的应用增量升级方法及系统 | |
US20100293541A1 (en) | Simplifying installation of software modules on heterogeneous remote systems | |
EP1437657A2 (en) | System and method for management of software applications | |
CN110659045B (zh) | 一种软件化雷达实时动态更新系统 | |
CN111857801B (zh) | 一种移动应用的构建方法 | |
US20050086640A1 (en) | Initiating execution of application programs on a data processing arrangement | |
US20090249311A1 (en) | Sharing a native module of compiled code using an abstraction module of interpreted code in a virtual machine environment | |
CN104750528A (zh) | 一种Android程序中的组件管理方法和装置 | |
CN105516154A (zh) | 应用于SEAndroid系统的安全策略配置方法及装置 | |
CN108363612A (zh) | 基于类装载器实现的j2ee模块热部署及调用信息统计方法 | |
CN113419783A (zh) | 一种跨平台多进程的插件管理与过程调用方法 | |
US20040172407A1 (en) | Method and system of processing an encapsulated file at a management computer | |
CN108228266B (zh) | 一种Android插件框架下不同插件间启动Fragment组件的方法和装置 | |
CN111324395B (zh) | 调用方法、装置和计算机可读存储介质 | |
CN115129740B (zh) | 一种云原生环境下的分布式微服务数据库更新方法及系统 | |
CN116680003A (zh) | 前端插件化系统 | |
CN108694048A (zh) | 一种批量发布服务的实现方法 | |
CN108804236B (zh) | 一种aidl文件的共享方法及系统 |
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 |