CN112783568A - 应用程序的初始化方法、装置、设备和存储介质 - Google Patents
应用程序的初始化方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112783568A CN112783568A CN202110036870.4A CN202110036870A CN112783568A CN 112783568 A CN112783568 A CN 112783568A CN 202110036870 A CN202110036870 A CN 202110036870A CN 112783568 A CN112783568 A CN 112783568A
- Authority
- CN
- China
- Prior art keywords
- initialization
- dependency
- dependency graph
- target
- graph
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种应用程序的初始化方法、装置、设备和存储介质。该方法包括:根据应用程序中至少一个业务模块的依赖关系,确定第一依赖关系图,第一依赖关系图中包括各个业务模块各自对应的第一初始化对象;生成目标业务模块的初始化约束条件对应的第二初始化对象;目标业务模块为至少一个业务模块中初始化时需要满足初始化约束条件的业务模块;根据依赖关系,在第一依赖关系图中添加第二初始化对象得到第二依赖关系图,并运行第二依赖关系图。本申请实施例将约束条件转成依赖关系图中的初始化对象并重新调整依赖关系,初始化应用程序时既可实现业务逻辑交互,又能保证业务依赖结构清晰,大大降低了初始化逻辑维护成本而且提升了程序鲁棒性。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种应用程序的初始化方法、装置、设备和存储介质。
背景技术
在复杂应用程序中,应用程序内部的各个功能模块之间通常具有依赖关系,在应用程序启动时通常要进行初始化工作。
相关技术中,把应用程序中的依赖关系看成一张图,例如,A,B,C,D,E模块依次具有依赖关系,B依赖A,C依赖B,D依赖C,E依赖D,按照A,B,C,D,E顺序来初始化,决定某一模块是否被初始化的前提条件是依赖的前置模块是否完成了初始化。
当需要考虑业务逻辑的约束来进一步决定模块之间的依赖关系时,需要把约束条件写在初始化该模块的对应任务中,例如如图1所示,初始化C时需要满足约束条件A,但是后续依赖该任务C的任务D,无论约束条件的结果如何都会继续初始化,无法中断初始化流程,假设约束条件A不满足,C未初始化,也会执行D的初始化,可能导致程序运行出错。
发明内容
本申请实施例提供一种应用程序的初始化方法、装置、设备和存储介质,以实现对应用程序的初始化,而且提升了应用程序的鲁棒性。
第一方面,本申请实施例提供一种应用程序的初始化方法,包括:
根据所述应用程序中至少一个业务模块的依赖关系,确定第一依赖关系图,所述第一依赖关系图中包括各个所述业务模块各自对应的第一初始化对象;
生成目标业务模块的初始化约束条件对应的第二初始化对象;所述目标业务模块为所述至少一个业务模块中初始化时需要满足所述初始化约束条件的业务模块;
根据所述依赖关系,在所述第一依赖关系图中添加所述第二初始化对象,得到第二依赖关系图,并运行所述第二依赖关系图。
第二方面,本申请实施例提供一种应用程序的初始化装置,包括:
确定模块,用于根据所述应用程序中至少一个业务模块的依赖关系,确定第一依赖关系图,所述第一依赖关系图中包括各个所述业务模块各自对应的第一初始化对象;
生成模块,用于生成目标业务模块的初始化约束条件对应的第二初始化对象;所述目标业务模块为所述至少一个业务模块中初始化时需要满足所述初始化约束条件的业务模块;
处理模块,用于根据所述依赖关系,在所述第一依赖关系图中添加所述第二初始化对象,得到第二依赖关系图,并运行所述第二依赖关系图。
第三方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法。
第四方面,本申请实施例提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的方法。
本申请实施例提供的应用程序的初始化方法、装置、设备和存储介质,根据应用程序中至少一个业务模块的依赖关系,确定第一依赖关系图,第一依赖关系图中包括各个业务模块各自对应的第一初始化对象;生成目标业务模块的初始化约束条件对应的第二初始化对象,即将具有业务逻辑交互的约束条件转成依赖关系图中的初始化对象;目标业务模块为至少一个业务模块中初始化时需要满足所述初始化约束条件的业务模块;进一步,根据依赖关系,在第一依赖关系图中添加第二初始化对象,得到第二依赖关系图,即重新调整原第一依赖关系图中的依赖关系,并运行第二依赖关系图,实现对应用程序的初始化,初始化应用程序时既可实现业务逻辑交互,又能保证业务依赖结构清晰,而且提升了程序鲁棒性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为相关技术中提供的初始化原理示意图一;
图2为本申请一实施例提供的系统架构示意图;
图3为相关技术中提供的初始化原理示意图二;
图4是本申请提供的应用程序的初始化方法一实施例的流程示意图;
图5是本申请提供的方法一实施例的依赖关系图;
图6是本申请提供的方法另一实施例的依赖关系图;
图7是本申请提供的应用程序的初始化装置一实施例的结构示意图;
图8是本申请提供的电子设备实施例的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本申请的说明书和权利要求书及所述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,对本申请实施例涉及的部分词汇和应用场景进行介绍。
图2为本申请一实施例提供的系统架构示意图。如图2所示,本申请一实施例的系统架构中可以包括但不限于:电子设备11和服务器12。电子设备11例如包括:手机、平板电脑、个人计算机等用户设备。
其中,电子设备11和服务器12之间可以通过网络连接。
本申请实施例提供的方法可由一个电子设备如处理器执行相应的软件代码实现,也可由一个电子设备在执行相应的软件代码的同时,通过和服务器进行数据交互来实现。
相关技术中,把应用程序中的依赖关系看成一张图,例如,A,B,C,D,E模块依次具有依赖关系,B依赖A,C依赖B,D依赖C,E依赖D,按照A,B,C,D,E顺序来初始化,决定某一模块是否被初始化的前提条件是依赖的前置模块是否完成了初始化。
当需要考虑业务逻辑的约束来进一步决定模块之间的依赖关系时,需要把约束条件写在初始化该模块的对应任务中,例如如图1所示,初始化C时需要满足约束条件A,但是后续依赖该任务C的任务D,无论约束条件的结果如何都会继续初始化,无法中断初始化流程,假设约束条件A不满足,C未初始化,也会执行D的初始化,可能导致程序运行出错。
例如如图3所示,在ABCDE初始化前通过if/else逻辑来判断当前模块是否满足依赖的前置模块已完成初始化。当需要考虑业务逻辑的约束来进一步决定模块之间的依赖关系时,在if/else中添加业务逻辑进行综合判断,如果多个业务则需要多处修改原来代码中的判断逻辑,会导致约束条件越来越多而导致结构不清晰,维护成本较大。
本申请实施例的方法,将约束条件转成依赖关系图中的初始化对象并重新调整依赖关系,初始化应用程序时既可实现业务逻辑交互,又能保证业务依赖结构清晰,大大降低了初始化逻辑维护成本而且提升了程序鲁棒性。
下面以具体的实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图4是本申请提供的应用程序的初始化方法一实施例的流程示意图。如图4所示,本实施例提供的方法,包括:
步骤101、根据应用程序中至少一个业务模块的依赖关系,确定第一依赖关系图,第一依赖关系图中包括各个业务模块各自对应的第一初始化对象。
具体的,多个业务模块的依赖关系可以通过一个第一依赖关系图表示,该第一依赖关系图中每个第一初始化对象对应一个业务模块。
例如图5中所示,图中的每个节点表示一个业务模块对应的第一初始化对象;节点之间连接的箭头表示依赖关系。第一初始化对象B依赖第一初始化对象A,第一初始化对象C依赖第一初始化对象B,第一初始化对象D依赖第一初始化对象C,第一初始化对象E依赖第一初始化对象D,第一初始化对象F依赖第一初始化对象C,第一初始化对象G依赖第一初始化对象D和F。
步骤102、生成目标业务模块的初始化约束条件对应的第二初始化对象;目标业务模块为至少一个业务模块中初始化时需要满足初始化约束条件的业务模块。
具体的,为了让初始化约束条件能够约束第一初始化对象的启动而不是约束第一初始化对象执行初始化,任何通过业务交互而形成的初始化约束条件可转化为一第二初始化对象并找到适合的位置插入到第一依赖关系图中,得到第二依赖关系图。比如初始化对象B依赖初始化对象A,且约束条件S限制B的初始化,如图6所示,将约束条件S当作一个初始化对象,插入到初始化对象A和B之间,变成初始化对象B依赖初始化对象S,而初始化对象S则依赖A。
步骤103、根据依赖关系,在第一依赖关系图中添加第二初始化对象,得到第二依赖关系图,并运行第二依赖关系图。
具体的,在将初始化约束条件对应的第二初始化对象添加至第一依赖关系图中时,需要考虑原依赖关系,即确定在该第一依赖关系图中与该第二初始化对象具有依赖关系的第一初始化对象,最终将第二初始化对象插入第一依赖关系图中该初始化约束条件对应的目标业务模块的第一初始化对象之前,将原第一依赖关系图中依赖关系进行调整,得到第二依赖关系图。
运行第二依赖关系图,即运行该第二依赖关系图中各个初始化对象,执行第一初始化对象的初始化,和/或,确定第二初始化对象对应的初始化约束条件是否满足,以实现对第二依赖关系图中各个第一初始化对象的初始化,即实现对应用程序的初始化。
第二初始化对象之后的初始化对象的运行,取决于第二初始化对象的执行结果,即根据第二初始化对象的执行结果决定后续行为。比如当约束条件满足时,则初始化对象S正常结束,初始化对象B得以运行。当约束条件不满足时,初始化对象S可选择等待或抛出异常中断第二依赖关系图中后续初始化的运行。
本实施例的方法,根据应用程序中至少一个业务模块的依赖关系,确定第一依赖关系图,第一依赖关系图中包括各个业务模块各自对应的第一初始化对象;生成目标业务模块的初始化约束条件对应的第二初始化对象,即将具有业务逻辑交互的约束条件转成依赖关系图中的初始化对象;目标业务模块为至少一个业务模块中初始化时需要满足初始化约束条件的业务模块;进一步,根据依赖关系,在第一依赖关系图中添加第二初始化对象,得到第二依赖关系图,即重新调整原第一依赖关系图中的依赖关系,并运行第二依赖关系图,实现对应用程序的初始化,初始化应用程序时既可实现业务逻辑交互,又能保证业务依赖结构清晰,而且提升了程序鲁棒性。
在一实施例中,第二初始化对象的内容为确定所述目标业务模块的初始化约束条件是否满足,所述第二初始化对象依赖的第一前置对象为:所述第一依赖关系图中目标业务模块对应的第一初始化对象依赖的第二前置对象,依赖所述第二初始化对象的第一后置对象为:所述第一依赖关系图中所述目标业务模块对应的第一初始化对象。
在一实施例中,可以定义节点Node,用于描述依赖关系图中的初始化对象,Node包括以下至少一个属性信息,一个是前置节点集合frontNodes,表示该节点所依赖的节点集,后置节点集合afterNodes,表示被哪些节点依赖的节点集。该节点对应两个行为,其中一个start表示节点启动,即启动执行节点的内容,另一个run,表示执行该节点的内容,比如初始化。
其中,可以使用Java类定义初始化对象,用于描述该类初始化对象的属性和行为。
具体的,可通过每个初始化对象的前置对象(即前置节点集合frontNodes)和后置对象(即后置节点集合afterNodes)来控制初始化对象间的依赖关系。初始化对象的属性信息,包括以下至少一项:标识ID、前置对象信息、后置对象信息。
为了让约束条件能够约束节点的启动而不是约束节点的执行,任何通过业务交互而形成的约束条件可转化为一个节点并找到适合的位置插入。比如节点B依赖节点A,且约束条件S限制B的初始化,那么我们就把约束条件S当作一个节点,插入到节点A和B之间,变成节点B依赖节点S,而节点S则依赖A。而当S节点执行后,再根据执行结果决定后续行为。比如当约束条件满足是,则S节点正常结束,B节点得以运行。当约束条件不满足时,S节点可选择等待或抛出异常中断依赖关系图的运行状态。
例如,如图6所示,第二初始化对象为约束条件S,该第二初始化对象S依赖的第一前置对象为初始化对象A,依赖第二初始化对象S的第一后置对象为初始化对象B,即该约束条件对应的初始化对象。
在一实施例中,可通过如下函数addRestrictions(node,runnable)生成第二初始化对象,该函数的第一个参数为需要添加约束条件的Node节点ID,即目标业务模块对应的第一初始化对象的ID,如节点B的ID,第二个参数为将约束条件转化成节点之后需要执行的内容体runnable,调用runnable的run方法能够执行内容体定义的内容,即确定约束条件是否满足。通过该函数的执行可以重构该Node节点的前置节点集frontNodes和/或后置节点集afterNodes数据。
在一实施例中,添加所述第二初始化对象之后还可以进行如下操作:
对第二初始化对象依赖的第一前置对象,以及依赖第二初始化对象的第一后置对象的属性信息分别进行更新;所述属性信息包括:前置对象信息和/或后置对象信息。
可选的,可以通过如下方式更新:
将依赖所述第一前置对象的第二后置对象,更新为所述第二初始化对象;
将所述第一后置对象依赖的第二前置对象,更新为所述第二初始化对象。
具体的,如图6所示,对原第一依赖关系图中第一前置对象,即依赖初始化对象A的第二后置对象进行更新,更新为第二初始化对象S。
对原第一依赖关系图中第一后置对象,即初始化对象B依赖的第二前置对象进行更新,更新为第二初始化对象S。
上述实施方式中,将约束条件转成依赖关系图中的初始化对象并重新调整依赖关系,初始化应用程序时既可实现业务逻辑交互,又能保证业务依赖结构清晰,而且提升了程序鲁棒性。
在一实施例中,步骤103中“运行第二依赖关系图”具体可以通过如下方式实现:
确定第二依赖关系图是否为有向无环图;
若否,则运行第二依赖关系图。
在一实施例中,可通过如下函数start(node)运行依赖关系图,检测依赖关系图是否为有向无环图,如果是则开始启动依赖关系图中首个节点并根据第二依赖关系图中各个初始化对象的依赖关系,运行各个初始化对象。
依赖关系图内部节点的依赖关系可能简单,也可能错综复杂,但只要内部节点间不存在循环依赖,则认为该图就是有向无环图,则该依赖关系图具有执行可行性。
在一实施例中,针对第二依赖关系图中任一目标初始化对象,可以通过如下方式确定执行可行性:
确定所述目标初始化对象的后置对象中是否包括所述目标初始化对象之前的初始化对象;
若否,则确定所述目标初始化对象的前置对象中是否包括所述目标初始化对象之后的初始化对象;
若否,则确定所述第二依赖关系图为有向无环序列。
具体的,比如当C节点依赖B节点,B节点依赖A,B节点也依赖C节点,那么A启动且执行完之后,发现B依赖它,但是B的前置节点有A和C,C却只能等到B执行完才启动,所以陷入死循环而永远不会启动B。因此,判断依赖是否构建成一张“有向无环图”就是判断该依赖关系图的执行可行性。
其中,目标初始化对象为第二依赖关系图中第一初始化对象和第二初始化对象中任一初始化对象。
检测依赖关系图是否为有向无环图是采用从根节点向下每一层遍历各个节点的afterNodes,如果下层节点的afterNodes包含上层节点,则依赖关系图有问题,不是有向无环图;再从叶子节点向上遍历各个节点的frontNodes,如果上层节点的frontNodes包含下层节点,则依赖关系图也是有问题,不是有向无环图。
上述实施方式中,将应用程序中具有依赖关系的业务模块转化为有向无环图,能够保证依赖关系图的执行可行性,提升了程序鲁棒性。
在上述实施例的基础上,针对第二依赖关系图中任一目标初始化对象,步骤103中“运行第二依赖关系图”具体可以采用如下方式实现:
运行所述目标初始化对象;
对所述目标初始化对象的后置对象的前置对象进行更新,获取所述后置对象更新后的前置对象;
若所述后置对象更新后的前置对象的数量为零,则运行所述目标初始化对象的后置对象。
具体的,运行目标初始化对象,如进行初始化或确定约束条件是否满足,目标初始化对象执行完之后遍历该目标初始化对象的后置对象afterNodes,移除该后置对象的前置对象集合frontNodes中对应的当前目标初始化对象,并判断该后置对象的前置对象集合frontNodes是否为空,如果为空则启动该后置对象。
在一实施例中,若所述第二初始化对象的运行条件不满足时,停止启动对所述第二初始化对象的后置对象的运行。
具体的,执行第二初始化对象可以输出执行结果,例如通过约束终结器Terminator输出执行结果,该约束终结器可输出如下几种结果:
a)continue指示,用于表示继续执行依赖关系图,可用于标识约束条件执行结束时机。
b)destroy指示,用于表示中断依赖关系图运行,例如可以抛出一个Java运行时异常指示,也可用于标识约束执行结束时机。
c)wait指示,用于表示执行可能比较久,需要进一步等待。
本申请实施例的方法,将应用程序中具有依赖关系的业务模块转化为有向无环图,并进一步将约束条件转成依赖关系图中的初始化对象并重新调整依赖关系,初始化应用程序时既可实现业务逻辑交互,又能保证业务依赖结构清晰,大大降低了初始化逻辑维护成本而且提升了程序鲁棒性。
图7为本申请提供的应用程序的初始化装置一实施例的结构图,如图7所示,本实施例的应用程序的初始化装置,包括:
确定模块,用于根据所述应用程序中至少一个业务模块的依赖关系,确定第一依赖关系图,所述第一依赖关系图中包括各个所述业务模块各自对应的第一初始化对象;
生成模块,用于生成目标业务模块的初始化约束条件对应的第二初始化对象;所述目标业务模块为所述至少一个业务模块中初始化时需要满足初始化约束条件的业务模块;
处理模块,用于根据所述依赖关系,在所述第一依赖关系图中添加所述第二初始化对象,得到第二依赖关系图,并运行所述第二依赖关系图。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本申请提供的电子设备实施例的结构示意图,如图8所示,该电子设备包括:
处理器120,以及,用于存储处理器120的可执行指令的存储器121。
上述部件可以通过一条或多条总线进行通信。
其中,处理器121配置为经由执行所述可执行指令来执行前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,此处不再赘述。
本申请实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,其实现原理和技术效果类似,此处不再赘述。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如前述方法实施例中任一项所述的方法,其具体实施过程可以参见前述方法实施例,其实现原理和技术效果类似,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (12)
1.一种应用程序的初始化方法,其特征在于,包括:
根据所述应用程序中至少一个业务模块的依赖关系,确定第一依赖关系图,所述第一依赖关系图中包括各个所述业务模块各自对应的第一初始化对象;
生成目标业务模块的初始化约束条件对应的第二初始化对象;所述目标业务模块为所述至少一个业务模块中初始化时需要满足所述始化约束条件的业务模块;
根据所述依赖关系,在所述第一依赖关系图中添加所述第二初始化对象,得到第二依赖关系图,并运行所述第二依赖关系图。
2.根据权利要求1所述的方法,其特征在于,
所述第二初始化对象的内容为确定所述目标业务模块的初始化约束条件是否满足,所述第二初始化对象依赖的第一前置对象为所述第一依赖关系图中目标业务模块对应的第一初始化对象依赖的第二前置对象,依赖所述第二初始化对象的第一后置对象为所述第一依赖关系图中所述目标业务模块对应的第一初始化对象。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述依赖关系,在所述第一依赖关系图中添加所述第二初始化对象,得到第二依赖关系图之后,还包括:
对所述第二初始化对象依赖的第一前置对象,以及依赖所述第二初始化对象的第一后置对象的属性信息分别进行更新;所述属性信息包括:前置对象信息和/或后置对象信息。
4.根据权利要求3所述的方法,其特征在于,所述对所述第二初始化对象依赖的第一前置对象,以及依赖所述第二初始化对象的第一后置对象的属性信息分别进行更新,包括:
将依赖所述第一前置对象的第二后置对象,更新为所述第二初始化对象;
将所述第一后置对象依赖的第二前置对象,更新为所述第二初始化对象。
5.根据权利要求1或2所述的方法,其特征在于,针对所述第二依赖关系图中任一目标初始化对象,所述运行所述第二依赖关系图,包括:
运行所述目标初始化对象;
对所述目标初始化对象的后置对象的前置对象进行更新,获取所述后置对象更新后的前置对象;
若所述后置对象更新后的前置对象的数量为零,则运行所述目标初始化对象的后置对象。
6.根据权利要求1或2所述的方法,其特征在于,所述运行所述第二依赖关系图,包括:
确定所述第二依赖关系图是否为有向无环图;
若否,则运行所述第二依赖关系图。
7.根据权利要求6所述的方法,其特征在于,针对所述第二依赖关系图中任一目标初始化对象,所述确定所述第二依赖关系图是否为有向无环图,包括:
确定所述目标初始化对象的后置对象中是否包括所述目标初始化对象之前的初始化对象;
若否,则确定所述目标初始化对象的前置对象中是否包括所述目标初始化对象之后的初始化对象;
若否,则确定所述第二依赖关系图为有向无环图。
8.根据权利要求1或2所述的方法,其特征在于,还包括:
若所述第二初始化对象的运行条件不满足时,停止启动对所述第二初始化对象的后置对象的运行。
9.一种应用程序的初始化装置,其特征在于,包括:
确定模块,用于根据所述应用程序中至少一个业务模块的依赖关系,确定第一依赖关系图,所述第一依赖关系图中包括各个所述业务模块各自对应的第一初始化对象;
生成模块,用于生成目标业务模块的初始化约束条件对应的第二初始化对象;所述目标业务模块为所述至少一个业务模块中初始化时需要满足所述初始化约束条件的业务模块;
处理模块,用于根据所述依赖关系,在所述第一依赖关系图中添加所述第二初始化对象,得到第二依赖关系图,并运行所述第二依赖关系图。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述的方法。
11.一种终端设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-8任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110036870.4A CN112783568B (zh) | 2021-01-12 | 2021-01-12 | 应用程序的初始化方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110036870.4A CN112783568B (zh) | 2021-01-12 | 2021-01-12 | 应用程序的初始化方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783568A true CN112783568A (zh) | 2021-05-11 |
CN112783568B CN112783568B (zh) | 2022-12-06 |
Family
ID=75755363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110036870.4A Active CN112783568B (zh) | 2021-01-12 | 2021-01-12 | 应用程序的初始化方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783568B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076129A (zh) * | 2021-03-23 | 2021-07-06 | 成都安恒信息技术有限公司 | 一种复杂配置依赖关系自动检查处理方法 |
CN113448546A (zh) * | 2021-06-23 | 2021-09-28 | 未鲲(上海)科技服务有限公司 | 依赖关系的视图生成方法、系统、设备及存储介质 |
CN114528047A (zh) * | 2022-02-18 | 2022-05-24 | 北京恒华伟业科技股份有限公司 | 一种控件的初始化方法、系统、设备及存储介质 |
CN114546520A (zh) * | 2022-01-27 | 2022-05-27 | 浪潮通用软件有限公司 | 一种基于SaaS应用的初始化方法、设备及介质 |
CN114564254A (zh) * | 2022-04-26 | 2022-05-31 | 广州世炬网络科技有限公司 | 模块初始化顺序生成方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005273A1 (en) * | 2001-06-29 | 2003-01-02 | Perycz Krzysztof S. | Initialization, reconfiguration, and shut down of a module function |
US20060288336A1 (en) * | 2005-06-21 | 2006-12-21 | Microsoft Corporation | Module initialization |
CN110442396A (zh) * | 2019-07-31 | 2019-11-12 | 网易(杭州)网络有限公司 | 应用程序启动方法及装置、存储介质及电子设备 |
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
CN110704050A (zh) * | 2019-10-10 | 2020-01-17 | 北京无限光场科技有限公司 | 模块初始化方法、装置、电子设备及计算机可读存储介质 |
CN111209052A (zh) * | 2018-11-20 | 2020-05-29 | 北京京东尚科信息技术有限公司 | 一种应用启动的方法及系统 |
CN111258740A (zh) * | 2020-02-03 | 2020-06-09 | 北京无限光场科技有限公司 | 一种用于启动应用程序的方法、装置和电子设备 |
-
2021
- 2021-01-12 CN CN202110036870.4A patent/CN112783568B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005273A1 (en) * | 2001-06-29 | 2003-01-02 | Perycz Krzysztof S. | Initialization, reconfiguration, and shut down of a module function |
US20060288336A1 (en) * | 2005-06-21 | 2006-12-21 | Microsoft Corporation | Module initialization |
CN111209052A (zh) * | 2018-11-20 | 2020-05-29 | 北京京东尚科信息技术有限公司 | 一种应用启动的方法及系统 |
CN110442396A (zh) * | 2019-07-31 | 2019-11-12 | 网易(杭州)网络有限公司 | 应用程序启动方法及装置、存储介质及电子设备 |
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
CN110704050A (zh) * | 2019-10-10 | 2020-01-17 | 北京无限光场科技有限公司 | 模块初始化方法、装置、电子设备及计算机可读存储介质 |
CN111258740A (zh) * | 2020-02-03 | 2020-06-09 | 北京无限光场科技有限公司 | 一种用于启动应用程序的方法、装置和电子设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076129A (zh) * | 2021-03-23 | 2021-07-06 | 成都安恒信息技术有限公司 | 一种复杂配置依赖关系自动检查处理方法 |
CN113076129B (zh) * | 2021-03-23 | 2023-11-28 | 成都安恒信息技术有限公司 | 一种复杂配置依赖关系自动检查处理方法 |
CN113448546A (zh) * | 2021-06-23 | 2021-09-28 | 未鲲(上海)科技服务有限公司 | 依赖关系的视图生成方法、系统、设备及存储介质 |
CN114546520A (zh) * | 2022-01-27 | 2022-05-27 | 浪潮通用软件有限公司 | 一种基于SaaS应用的初始化方法、设备及介质 |
CN114546520B (zh) * | 2022-01-27 | 2023-06-09 | 浪潮通用软件有限公司 | 一种基于SaaS应用的初始化方法、设备及介质 |
CN114528047A (zh) * | 2022-02-18 | 2022-05-24 | 北京恒华伟业科技股份有限公司 | 一种控件的初始化方法、系统、设备及存储介质 |
CN114564254A (zh) * | 2022-04-26 | 2022-05-31 | 广州世炬网络科技有限公司 | 模块初始化顺序生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112783568B (zh) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112783568B (zh) | 应用程序的初始化方法、装置、设备和存储介质 | |
CN111144982B (zh) | 订单状态转移方法、装置、电子设备和存储介质 | |
EP1582985A2 (en) | Test case inheritance controlled via attributes | |
US11422917B2 (en) | Deriving software application dependency trees for white-box testing | |
CN110609755A (zh) | 跨区块链节点的消息处理方法及装置、设备、介质 | |
CN110389765A (zh) | 一种参数校验方法和参数校验系统 | |
CN110765746B (zh) | 基于事件代理的表单自动生成方法和系统 | |
CN111343181A (zh) | 报文的处理方法,系统以及数据池和计算机可读存储介质 | |
CN112882732A (zh) | 一种软件开发工具包sdk中功能代码的更新方法和装置 | |
CN109032612B (zh) | 混合型应用的接口调用方法、装置及计算机可读存储介质 | |
CN111679852B (zh) | 一种冲突依赖库的检测方法及装置 | |
CN114895935A (zh) | 刷写车辆ecu的方法、装置、电子设备及存储介质 | |
EP2271982A1 (en) | A method and a system for transforming an object model | |
CN113468212A (zh) | 事件执行的方法、装置及电子设备 | |
CN110780863A (zh) | 一种存储系统的跨平台开发方法、装置、设备及介质 | |
CN114691241B (zh) | 任务执行方法、装置、电子设备及存储介质 | |
CN105912468B (zh) | 开放平台运行脚本的方法和开放平台系统 | |
CN112015436A (zh) | 短信平台部署方法及装置、计算设备、计算机存储介质 | |
KR101684454B1 (ko) | 하이브리드 애플리케이션 및 이의 이벤트 처리 방법 | |
CN115904636A (zh) | 事件分发方法、事件分发装置、存储介质与电子设备 | |
CN110221952B (zh) | 业务数据的处理方法及装置、业务数据处理系统 | |
CN112579156A (zh) | 一种业务事件的处理系统以及处理方法、装置和设备 | |
CN113742038B (zh) | 业务的处理方法、装置和非易失性计算机可读存储介质 | |
CN113946333B (zh) | 一种移动端逻辑脚本执行方法及装置 | |
US11915003B2 (en) | Process parasitism-based branch prediction method and device for serverless computing, electronic device, and non-transitory readable storage medium |
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 |