CN113326077A - 一种配置文件的加载方法及装置 - Google Patents
一种配置文件的加载方法及装置 Download PDFInfo
- Publication number
- CN113326077A CN113326077A CN202110653862.4A CN202110653862A CN113326077A CN 113326077 A CN113326077 A CN 113326077A CN 202110653862 A CN202110653862 A CN 202110653862A CN 113326077 A CN113326077 A CN 113326077A
- Authority
- CN
- China
- Prior art keywords
- loaded
- enumeration
- configuration
- loading
- file
- 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.)
- Pending
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 162
- 238000000034 method Methods 0.000 claims abstract description 66
- 230000003068 static effect Effects 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 19
- 239000004576 sand Substances 0.000 claims description 4
- 239000002699 waste material Substances 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种配置文件的加载方法及装置,包括:获取配置加载指令,配置加载指令中包括待加载对象,然后从预设枚举类中确定待加载对象的枚举值,其中,预设枚举类的枚举变量中包括文件名及文件描述,预设枚举类中包括至少一个枚举值,每个枚举值对应一个配置文件,再通过待加载对象的枚举值中的文件名,确定待加载对象位于公共类的静态类型的存储对象中,且待加载对象的加载间隔满足预设条件,则通过待加载对象的枚举值中的文件描述,获取待加载对象对应的配置文件并加载配置文件。以此实现无重启的加载更新后的配置文件,对各配置文件进行统一的管理,简易编程代码,防止频繁的加载更新后的配置文件,避免开发框架运行时的资源浪费。
Description
技术领域
本发明涉及金融科技(Fintech)领域,尤其涉及一种配置文件的加载方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(例如:区块链、云计算或大数据)应用在金融领域,传统金融业正在逐步向金融科技转变,大数据技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对大数据技术中开发框架加载配置文件提出了更高的要求。
在spring等开发框架,存在多种类别的配置文件,配置文件存储有实现各种功能的配置信息,目前,spring等开发框架在加载配置文件中的配置信息时,一般是通过配置文件的API(Application Programming Interface,应用程序接口)获取配置信息。
然而,spring等开发框架在启动时会加载配置文件,但在执行过程中,并不能实时去加载新增或修改后的配置文件,若想实时的使用加载新增或修改后的配置文件中的配置信息,需要将开发框架重新启动,进而重新加载新增或修改后的配置文件,且现有技术中通过配置文件的API获取配置信息的方法,在底层代码实现时,所需要的代码复杂繁多,不利于开发,且配置文件不利于管理。
因此,现需要一种配置文件的加载方法,实现实时的加载配置文件中的配置信息,统一管理配置文件,简化所需要的代码。
发明内容
本发明实施例提供一种配置文件的加载方法及装置,用于实现实时的加载配置文件中的配置信息,统一管理配置文件,简化所需要的代码。
第一方面,本发明实施例提供一种配置文件的加载方法,包括:
获取配置加载指令;所述配置加载指令中包括待加载对象;
从预设枚举类中确定所述待加载对象的枚举值;其中,所述预设枚举类的枚举变量中包括文件名及文件描述;所述预设枚举类中包括至少一个枚举值,每个枚举值对应一个配置文件;
通过所述待加载对象的枚举值中的文件名,判断所述待加载对象是否位于所述公共类的静态类型的存储对象中;
若所述待加载对象位于所述公共类的静态类型的存储对象中,则判断所述待加载对象的加载间隔是否满足预设条件;
若所述待加载对象的加载间隔满足所述预设条件,则通过所述待加载对象的枚举值中的文件描述,获取所述待加载对象对应的配置文件并加载所述配置文件。
上述技术方案中,通过配置加载指令使开发框架重新加载更新后的配置文件,实现无重启的加载更新后的配置文件,通过预设枚举类对各配置文件进行统一的管理,在底层代码实现加载功能时,与现有技术相比,更加的简易,且通过预设条件可以防止频繁的加载更新后的配置文件,避免开发框架运行时的资源浪费。
可选的,从预设枚举类中确定所述待加载对象的枚举值,包括:
调用所述预设枚举类对应的配置枚举接口;所述配置枚举接口中封装有文件名获取方法和文件描述获取方法;
通过所述配置枚举接口,从所述预设枚举类中确定所述待加载对象的枚举值。
上述技术方案中,预设枚举类中包括各配置文件对应的枚举值,通过配置枚举接口可以获取各配置文件的文件名,进而可以匹配到待加载对象的文件名,从而确定出待加载对象的枚举值,也就是说,无论待加载对象是哪个配置文件,在预设枚举类中均有对应的枚举值,以此实现对各配置文件的统一管理,不会出现配置文件散乱的问题。
可选的,所述配置枚举接口是通过继承具有获取文件信息功能的第一枚举接口和具有字符串互转功能的第二枚举接口得到的。
上述技术方案中,通过获取文件信息功能的第一枚举接口可以得到枚举类型中各配置文件的信息,通过具有字符串互转功能的第二枚举接口可以将枚举类型中各配置文件的信息进行格式上的转换,以此使配置枚举接口可以确定待加载对象的枚举值,并得到枚举值对应的文件描述,实现通过配置枚举接口对各配置文件的统一管理,防止因配置文件存储位置散乱导致的开发者开发难度大的问题。
可选的,通过所述配置枚举接口,从所述预设枚举类中确定所述待加载对象的枚举值,包括:
通过所述配置枚举接口,从所述预设枚举类中确定各配置文件的文件名及所述各配置文件的枚举值;
根据与所述待加载对象名称对应的配置文件的文件名,确定所述待加载对象的枚举值。
上述技术方案中,通过配置枚举接口将配置文件和枚举值实现一对一的相对应应,实现通过预设枚举类对各配置文件进行统一的管理,在底层代码实现加载功能时,与现有技术相比,更加的简易。
可选的,通过所述待加载对象的枚举值中的文件描述,获取所述待加载对象对应的配置文件并加载所述配置文件,包括:
通过所述公共类,确定所述待加载对象的枚举值中的文件描述对应的存储路径;
通过所述存储路径,获取所述待加载对象对应的配置文件;
加载所述配置文件并将所述配置文件更新至所述存储对象中。
上述技术方案中,公共类中存有各配置文件的存储路径,用于获取配置文件的配置信息,以此在存储对象中存储各配置文件的配置信息,以使预设枚举类通过调用预设的公共类就可以得到各配置文件的配置信息,实现通过预设枚举类对各配置文件的统一管理。
可选的,通过预设的公共类,确定所述待加载配置文件的加载间隔满足预设条件,包括:
确定所述待加载配置文件的上一次加载时间与当前时间的第一加载间隔;
针对任一枚举值,确定所述枚举值对应的配置文件的上一次加载时间与当前时间的第二加载间隔;
根据各枚举值的第二加载间隔确定时间阈值;
若所述第一加载间隔大于所述时间阈值,则确定所述待加载配置文件的加载间隔满足预设条件。
可选的,时间阈值用于放置频繁的加载更新后的配置文件,避免开发框架运行时的资源浪费,且时间阈值是根据各配置文件上一次加载时间确定的,可以保证时间阈值的实时性,提升预设条件的灵活性和准确性。
可选的,根据下述公式(1)确定时间阈值;
ta=α×ts÷N (1);
其中,ta为时间阈值,ts为各枚举值的第二加载间隔的总和,α为预设系数,N为枚举值的数量。
第二方面,本发明实施例提供一种配置文件的加载装置,包括:
获取模块,用于获取配置加载指令;所述配置加载指令中包括待加载对象;
处理模块,用于从预设枚举类中确定所述待加载对象的枚举值;其中,所述预设枚举类的枚举变量中包括文件名及文件描述;所述预设枚举类中包括至少一个枚举值,每个枚举值对应一个配置文件;
通过所述待加载对象的枚举值中的文件名,判断所述待加载对象是否位于所述公共类的静态类型的存储对象中;
若所述待加载对象位于所述公共类的静态类型的存储对象中,则判断所述待加载对象的加载间隔是否满足预设条件;
若所述待加载对象的加载间隔满足所述预设条件,则通过所述待加载对象的枚举值中的文件描述,获取所述待加载对象对应的配置文件并加载所述配置文件。
可选的,所述处理模块具体用于:
调用所述预设枚举类对应的配置枚举接口;所述配置枚举接口中封装有文件名获取方法和文件描述获取方法;
通过所述配置枚举接口,从所述预设枚举类中确定所述待加载对象的枚举值。
可选的,所述配置枚举接口是通过继承具有获取文件信息功能的第一枚举接口和具有字符串互转功能的第二枚举接口得到的。
可选的,所述处理模块具体用于:
通过所述配置枚举接口,从所述预设枚举类中确定各配置文件的文件名及所述各配置文件的枚举值;
根据与所述待加载对象名称对应的配置文件的文件名,确定所述待加载对象的枚举值。
可选的,所述处理模块具体用于:
通过所述公共类,确定所述待加载对象的枚举值中的文件描述对应的存储路径;
通过所述存储路径,获取所述待加载对象对应的配置文件;
加载所述配置文件并将所述配置文件更新至所述存储对象中。
可选的,所述处理模块具体用于:
确定所述待加载配置文件的上一次加载时间与当前时间的第一加载间隔;
针对任一枚举值,确定所述枚举值对应的配置文件的上一次加载时间与当前时间的第二加载间隔;
根据各枚举值的第二加载间隔确定时间阈值;
若所述第一加载间隔大于所述时间阈值,则确定所述待加载配置文件的加载间隔满足预设条件。
可选的,所述处理模块具体用于:
根据下述公式(1)确定时间阈值;
ta=α×ts÷N (1);
其中,ta为时间阈值,ts为各枚举值的第二加载间隔的总和,α为预设系数,N为枚举值的数量。
第三方面,本发明实施例还提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述配置文件的加载方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述配置文件的加载方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种封装方法的接口示意图;
图2为本发明实施例提供的一种配置文件的加载方法的流程示意图;
图3为本发明实施例提供的一种配置文件的加载方法的流程示意图;
图4为本发明实施例提供的一种新增配置文件的加载方法示意图;
图5为本发明实施例提供的一种配置文件的加载装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
目前,开发框架在执行过程中,不能实时去加载新增或修改后的配置文件,若想实时的使用加载新增或修改后的配置文件中的配置信息,需要将开发框架重新启动,进而重新加载新增或修改后的配置文件,例如,某系统在启动时,加载有a、b、c、d四类配置文件,其中a为线程连接参数类型的配置文件,b为用户名和密码类型的配置文件,c为单点登录类型的配置文件,d为消息总线类型的配置文件。
现在系统执行过程中,将配置文件b中,用户密码的最大密码位数由21修改为18,则,配置文件b发生了修改,但在系统中,用户密码的最大密码位数仍然为21,只有将系统重启后,才可以使用修改后的配置文件,即用户再次使用系统时,用户密码的最大密码位数只能是18位。
且现有技术中通过配置文件的API获取配置信息的方法,在底层代码实现时,所需要的代码复杂繁多,不利于开发,且配置文件不利于管理。例如,若想获取配置文件的各配置信息,需要在代码中编辑各配置文件的存储路径、键等信息,无疑会使代码繁多复杂,不利于开发人员进行开发。
因此,现需要一种配置文件的加载方法,用于实现无重启的加载配置文件中的配置信息,且统一管理配置文件,简化所需要的代码。
图1示例性的示出了本发明实施例所适用的一种封装方法的接口示意图,包括可字典化接口110、可枚举化接口120、第一枚举接口130、第二枚举接口140和配置枚举接口150。
其中,可字典化接口110封装有获取字典类型名称方法和获取字典类型中文名称方法,用于获取字典类型名称,需要说明的是,不同的字典数据,可以使用不同的类型,支持静态加载方式初始化,然后进行字段数据抽取。
可枚举化接口120,继承于可字典化接口110,封装有获取枚举值方法和获取带类名的完整枚举值,用于获取枚举值和获取带类名的完整枚举值。
第一枚举接口130,继承于可枚举化接口120,封装有获取文件信息方法,用于获取配置文件的配置信息和文件名。
第二枚举接口140,继承于可枚举化接口120,封装有字符串转换方法,用于与字符串进行转换,以使字符串转换为对应的枚举值。
配置枚举接口150,继承于第一枚举接口130和第二枚举接口140,封装有获取配置文件名的方法、获取属性关键字的方法和获取属性值的方法,其中,属性关键字为加载对象中的键,属性值为键对应的值,用于获取待加载对象的配置信息。
需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。
基于上述描述,图2示例性的示出了本发明实施例提供的一种配置文件的加载方法的流程示意图,该流程可由配置文件的加载装置执行。
如图2所示,该流程具体包括:
步骤210,获取配置加载指令。
本发明实施例中,配置加载指令包括待加载对象,待加载对象可以包括配置文件的文件名和/配置文件中的键。
步骤220,从预设枚举类中确定所述待加载对象的枚举值。
本发明实施例中,预设枚举类的枚举变量中包括文件名及文件描述,预设枚举类中包括至少一个枚举值,每个枚举值对应一个配置文件。预设枚举类可以得到各配置文件的文件名以及对应的枚举值,以此可以得到待加载对象对应的枚举值。
步骤230,通过所述待加载对象的枚举值中的文件名,判断所述待加载对象是否位于所述公共类的静态类型的存储对象中。
步骤240,若所述待加载对象位于所述公共类的静态类型的存储对象中,则判断所述待加载对象的加载间隔是否满足预设条件。
步骤250,若所述待加载对象的加载间隔满足所述预设条件,则通过所述待加载对象的枚举值中的文件描述,获取所述待加载对象对应的配置文件并加载所述配置文件。
本发明实施例中,通过各配置文件上一次加载时间确定时间阈值,然后根据当前时间和待加载对象对应的配置文件的上一次加载时间确定第一加载间隔,根据第一加载间隔和时间阈值确定是否满足预设条件,在满足预设条件之后,获取待加载对象的配置文件并加载配置文件。
在步骤220中,预设枚举类中包括上述图1所示的配置枚举接口,根据上述图1可知,配置枚举接口是通过继承具有获取文件信息功能的第一枚举接口和具有字符串互转功能的第二枚举接口得到的,因此可以从预设枚举类中确定所述待加载对象的枚举值。
具体的,调用预设枚举类对应的配置枚举接口,其中,配置枚举接口中封装有文件名获取方法和文件描述获取方法,然后通过配置枚举接口,从预设枚举类中确定待加载对象的枚举值。
进一步地,通过所述配置枚举接口,从所述预设枚举类中确定各配置文件的文件名及所述各配置文件的枚举值,根据与所述待加载对象名称对应的配置文件的文件名,确定所述待加载对象的枚举值。
举例来说,配置枚举接口描述为Enum Properties FileAble,预设枚举类描述为Weup Properties File,文件名获取方法描述为get Properties FileName,文件描述获取方法描述为get Property,根据文件名获取方法得到预设枚举类中包括的四个配置文件的文件名,分别为a、b、c和d,对应的枚举值分别为a`、b`、c`和d`,然后根据待加载对象的名称匹配对应的配置文件的文件名,进而确定待加载对象的枚举值,如,待加载对象中包括名称A,其对应的配置文件的文件名为a,其中,文件名a是枚举值a`中的文件名,进而可以确定待加载对象的枚举值为a`。
进一步举例,如待加载对象为可创建密码位数,通过文件描述获取方法可以确定待加载对象为b配置文件,再由文件名获取方法确定待加载对象对应的文件名为b,进而确定出待加载对象的枚举值为b`。
根据上述例子可知,待加载对象可以直接包括文件名和配置文件中的键,也可以仅包括文件名或配置文件中的键,在此不做具体限定。
在步骤230中,预设的公共类中记录了各配置文件的文件名,通过待加载对象的枚举值中的文件名确定待加载对象是否位于公共类的静态类型的存储对象中。
例如,待加载对象中包括名称为A,通过枚举值a`确定其对应的配置文件的文件名为a,在存储对象中存储有各配置文件的文件名(如包括a、b、c、d),因此可以确定待加载对象A是否位于公共类的静态类型的存储对象中。
在步骤240中,预设的公共类中还记录了各配置文件的加载时间,以此确定待加载对象是否满足预设条件。
具体的,在确定待加载对象位于公共类的静态类型的存储对象中时,根据公共类中记录的各配置文件的加载时间,确定待加载对象的加载间隔是否满足预设条件。
本发明实施例中,针对记载间隔的预设条件,在一种可实施的方式中,时间阈值可以是人为根据经验预设的值,如1小时,2小时等。
在另一种可实施的方式中,根据一段历史加载间隔确定出均值,以作为时间阈值。
在本发明实施例中,是根据各配置文件的上一次加载时间与获取配置加载指令时的当前时间确定时间阈值。
进一步地,确定待加载配置文件的上一次加载时间与当前时间的第一加载间隔,针对任一枚举值,确定枚举值对应的配置文件的上一次加载时间与当前时间的第二加载间隔,根据各枚举值的第二加载间隔确定时间阈值,若第一加载间隔大于时间阈值,则确定待加载配置文件的加载间隔满足预设条件。
具体的,根据下述公式(1)确定时间阈值;
ta=α×ts÷N (1);
其中,ta为时间阈值,ts为各枚举值的第二加载间隔的总和,α为预设系数,N为枚举值的数量。需要说明的是,α为人为根据经验预设的值,范围在0%-100%,如90%、95%等,一般为100%。
结合上述描述,举例来说,获取配置加载指令的时间为17:00,即当前时间为17:00,配置文件a上一次加载时间为11:00,配置文件b上一次加载时间为12:00,配置文件c上一次加载时间为13:00,配置文件d上一次加载时间为16:00,则配置文件a的第二加载间隔为6小时,则配置文件b的第二加载间隔为5小时,则配置文件c的第二加载间隔为4小时,则配置文件d的第二加载间隔为1小时,α为100%,则时间阈值为(6+5+4+1)/4=4小时。
若待加载对象的对应文件为a,则待加载对象的第一加载间隔为6小时,大于时间阈值,则待加载配置文件的加载间隔满足预设条件,若待加载对象的对应文件为d,则待加载对象的第一加载间隔为1小时,小于时间阈值,则待加载配置文件的加载间隔不满足预设条件,上述仅为示例,不做具体限定。
根据本发明实施例,反应了各配置文件的加载时间的变动情况(即时间阈值),进而根据时间阈值来确定预设条件,既可以防止配置文件频繁加载,也可以提升加载配置文件的灵活性以及在时间上的准确性。
在步骤250中,针对获取待加载对象的对应的配置文件的配置信息,根据预设的公共类进行获取,其中,公共类中存有各配置文件的存储路径,以此公共类可以得到各配置文件的配置信息,并存储在公共类的存储对象中。
进一步地,通过公共类,确定待加载对象的枚举值中的文件描述对应的存储路径;通过存储路径,获取待加载对象对应的配置文件,加载配置文件并将配置文件更新至存储对象中。其中,配置文件中各关键字为键和关键字对应信息为值,如关键字为“用户密码的最大密码位数”,关键字对应信息为“18”。
在本发明实施例中,预设枚举类中封装的文件描述获取方法,会调用公共类中的静态方法,静态方法中包括存储对象,用于通过各配置文件的存储路径获取各配置文件的配置信息。
举例来说,预设的公共类描述为Properties FileInfo,静态方法描述为getProperties,公共类中包括了静态类型的map(即存储对象),map中包括了各枚举值中对应配置文件中的键,静态方法中存储有各配置文件的存储路径,公共类会根据存储路径得到配置文件的各关键字和关键字对应值,并存储至map中,以此实现了将待加载对象对应配置文件存储至存储对象,以使预设枚举类得到待加载对象对应的配置信息。
进一步举例,在获取配置加载指令之后,确定出待加载对象对应的配置文件的文件名为a,枚举值为a`,待加载对象的关键字为可创建密码位数,若预设条件满足,且待加载对象位于公共类的静态类型的存储对象中,即map中存储有配置文件a的各关键字和关键字对应的值,然后调用静态方法,根据存储路径(本地磁盘D/配置文件/a),得到配置文件a的各键值信息,其中包括修改后的关键字为可创建密码位数对应的值(如由21修改为18),然后将得到的各键值存储至map,然后根据待加载对象的关键字将修改后的值作为配置信息(18)加载至系统中。
示例性的,若在本地增加配置文件时,则需要在预设枚举类新建对应的枚举值,例如,增加配置文件d,则新建对应的枚举值d`,此时的配置加载指令中包括的待加载对象为配置文件d的文件名,然后确定配置文件d在静态类型的存储对象中是否有配置文件d的文件信息(即文件名和各关键字等),因配置文件d为新增文件,因此map中不存在配置文件d的文件信息,此时根据预设枚举类记录的文件名和各关键字,将配置文件的文件信息存储map中,再调用静态方法,得到配置文件d的各关键字的对应值,并存储至map中,且记录加载时间。
需要说明的是,本发明实施例中的存储对象也可以为非静态类型,静态方法可以为API获取信息的方法,在此不做具体的限定。
为了更好的解释上述技术方案,图3示例性的示出了本发明实施例提供的一种配置文件的加载方法的流程示意图,如图3所示,流程包括:
步骤310,确定待加载对象的信息。
确定出待加载对象的枚举值,进而确定出待加载对象对应的配置文件。
步骤320,确定待加载对象对应的配置文件是否存在map中,若是,则执行步骤330,否则执行步骤340。
步骤330,确定是否大于时间阈值,若是,则执行步骤350,否则执行步骤360。
确定出当前时间和待加载对象对应的配置文件的上一次加载时间之间的第一加载间隔,然后确定第一加载间隔是否大于根据各配置文件的加载时间确定的时间阈值。
步骤340,在map中生成配置对象。
根据预设枚举类中待加载对象对应的枚举值在map中生成配置对象。
步骤350,加载配置文件。
通过公共类中存储的配置文件的存储路径,根据静态方法得到待加载对象对应的配置文件的各键及对应的值,并存储至map中。
步骤360,记录本次加载时间。
本次不重新加载配置文件,在公共类中记录本次获取配置加载指令的时间,作为加载时间。
步骤370,记录加载时间。
将得到的配置文件的各键及对应的值加载至系统中,并在公共类中记录本次加载时间。
基于上述图3的技术方案,图4示例性的示出了本发明实施例提供的一种新增配置文件的加载方法示意图,如图4所示,流程包括:
步骤410,确定待加载对象对应的配置文件不在map中。
步骤420,生成配置对象。
根据预设枚举类中枚举值,生成配置对象,包括待加载对象对应的配置文件s的文件名和配置文件中的各关键字。
步骤430,确定是否大于时间阈值,若是则执行步骤450,否则执行步骤440。
因为配置文件s是新增配置文件,不存在上一次加载时间,因此无法得到第一加载间隔,因此默认配置文件s的第一加载间隔为无限大,即一定大于时间阈值。
步骤440,不重新加载,记录获取时间。
其中,获取时间为获取配置加载指令的时间。
步骤450,确定配置文件对应的配置信息是否存在map中,若是,则执行步骤460,否则执行步骤470。
步骤460,加载配置文件,记录加载时间。
步骤470,依据存储路径确定配置信息。
调用公共类中的静态方法,根据配置文件s的存储路径得到配置文件s中各关键字对应的值,并存储至map中。
步骤480,加载配置文件息,记录加载时间。
本发明实施例,通过将各配置文件归类成为枚举类中的枚举值,方便工程化管理,防止配置文件零散混乱的局面,统一配置文件的管理。通过接口继承的方法来实现上述技术方案,可以派生扩展其他枚举接口,并将配置文件用枚举值统一管理,根据上一次加载时间确定时间阈值,保证配置文件加载机制,实现无重启的加载配置文件。
基于相同的技术构思,图5示例性的示出了本发明实施例提供的一种配置文件的加载装置的结构示意图,该装置可以执行的流程。
如图5所示,该装置具体包括:
获取模块510,用于获取配置加载指令;所述配置加载指令中包括待加载对象;
处理模块520,用于从预设枚举类中确定所述待加载对象的枚举值;其中,所述预设枚举类的枚举变量中包括文件名及文件描述;所述预设枚举类中包括至少一个枚举值,每个枚举值对应一个配置文件;
通过所述待加载对象的枚举值中的文件名,判断所述待加载对象是否位于所述公共类的静态类型的存储对象中;
若所述待加载对象位于所述公共类的静态类型的存储对象中,则判断所述待加载对象的加载间隔是否满足预设条件;
若所述待加载对象的加载间隔满足所述预设条件,则通过所述待加载对象的枚举值中的文件描述,获取所述待加载对象对应的配置文件并加载所述配置文件。
可选的,所述处理模块520具体用于:
调用所述预设枚举类对应的配置枚举接口;所述配置枚举接口中封装有文件名获取方法和文件描述获取方法;
通过所述配置枚举接口,从所述预设枚举类中确定所述待加载对象的枚举值。
可选的,所述配置枚举接口是通过继承具有获取文件信息功能的第一枚举接口和具有字符串互转功能的第二枚举接口得到的。
可选的,所述处理模块520具体用于:
通过所述配置枚举接口,从所述预设枚举类中确定各配置文件的文件名及所述各配置文件的枚举值;
根据与所述待加载对象名称对应的配置文件的文件名,确定所述待加载对象的枚举值。
可选的,所述处理模块520具体用于:
通过所述公共类,确定所述待加载对象的枚举值中的文件描述对应的存储路径;
通过所述存储路径,获取所述待加载对象对应的配置文件;
加载所述配置文件并将所述配置文件更新至所述存储对象中。
可选的,所述处理模块520具体用于:
确定所述待加载配置文件的上一次加载时间与当前时间的第一加载间隔;
针对任一枚举值,确定所述枚举值对应的配置文件的上一次加载时间与当前时间的第二加载间隔;
根据各枚举值的第二加载间隔确定时间阈值;
若所述第一加载间隔大于所述时间阈值,则确定所述待加载配置文件的加载间隔满足预设条件。
可选的,所述处理模块520具体用于:
根据下述公式(1)确定时间阈值;
ta=α×ts÷N (1);
其中,ta为时间阈值,ts为各枚举值的第二加载间隔的总和,α为预设系数,N为枚举值的数量。
基于相同的技术构思,本发明实施例还提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述新增配置文件的加载方法。
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述新增配置文件的加载方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种配置文件的加载方法,其特征在于,包括:
获取配置加载指令;所述配置加载指令中包括待加载对象;
从预设枚举类中确定所述待加载对象的枚举值;其中,所述预设枚举类的枚举变量中包括文件名及文件描述;所述预设枚举类中包括至少一个枚举值,每个枚举值对应一个配置文件;
通过所述待加载对象的枚举值中的文件名,判断所述待加载对象是否位于所述公共类的静态类型的存储对象中;
若所述待加载对象位于所述公共类的静态类型的存储对象中,则判断所述待加载对象的加载间隔是否满足预设条件;
若所述待加载对象的加载间隔满足所述预设条件,则通过所述待加载对象的枚举值中的文件描述,获取所述待加载对象对应的配置文件并加载所述配置文件。
2.如权利要求1所述的方法,其特征在于,从预设枚举类中确定所述待加载对象的枚举值,包括:
调用所述预设枚举类对应的配置枚举接口;所述配置枚举接口中封装有文件名获取方法和文件描述获取方法;
通过所述配置枚举接口,从所述预设枚举类中确定所述待加载对象的枚举值。
3.如权利要求2所述的方法,其特征在于,所述配置枚举接口是通过继承具有获取文件信息功能的第一枚举接口和具有字符串互转功能的第二枚举接口得到的。
4.如权利要求2所述的方法,其特征在于,通过所述配置枚举接口,从所述预设枚举类中确定所述待加载对象的枚举值,包括:
通过所述配置枚举接口,从所述预设枚举类中确定各配置文件的文件名及所述各配置文件的枚举值;
根据与所述待加载对象名称对应的配置文件的文件名,确定所述待加载对象的枚举值。
5.如权利要求1所述的方法,其特征在于,通过所述待加载对象的枚举值中的文件描述,获取所述待加载对象对应的配置文件并加载所述配置文件,包括:
通过所述公共类,确定所述待加载对象的枚举值中的文件描述对应的存储路径;
通过所述存储路径,获取所述待加载对象对应的配置文件;
加载所述配置文件并将所述配置文件更新至所述存储对象中;所述配置文件中各关键字为键和关键字对应信息为值。
6.如权利要求1所述的方法,其特征在于,通过预设的公共类,确定所述待加载配置文件的加载间隔满足预设条件,包括:
确定所述待加载配置文件的上一次加载时间与当前时间的第一加载间隔;
针对任一枚举值,确定所述枚举值对应的配置文件的上一次加载时间与当前时间的第二加载间隔;
根据各枚举值的第二加载间隔确定时间阈值;
若所述第一加载间隔大于所述时间阈值,则确定所述待加载配置文件的加载间隔满足预设条件。
7.如权利要求6所述的方法,其特征在于,根据下述公式(1)确定时间阈值;
ta=α×ts÷N (1);
其中,ta为时间阈值,ts为各枚举值的第二加载间隔的总和,α为预设系数,N为枚举值的数量。
8.一种配置文件的加载装置,其特征在于,包括:
获取模块,用于获取配置加载指令;所述配置加载指令中包括待加载对象;
处理模块,用于从预设枚举类中确定所述待加载对象的枚举值;其中,所述预设枚举类的枚举变量中包括文件名及文件描述;所述预设枚举类中包括至少一个枚举值,每个枚举值对应一个配置文件;
通过所述待加载对象的枚举值中的文件名,判断所述待加载对象是否位于所述公共类的静态类型的存储对象中;
若所述待加载对象位于所述公共类的静态类型的存储对象中,则判断所述待加载对象的加载间隔是否满足预设条件;
若所述待加载对象的加载间隔满足所述预设条件,则通过所述待加载对象的枚举值中的文件描述,获取所述待加载对象对应的配置文件并加载所述配置文件。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110653862.4A CN113326077A (zh) | 2021-06-11 | 2021-06-11 | 一种配置文件的加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110653862.4A CN113326077A (zh) | 2021-06-11 | 2021-06-11 | 一种配置文件的加载方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113326077A true CN113326077A (zh) | 2021-08-31 |
Family
ID=77420561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110653862.4A Pending CN113326077A (zh) | 2021-06-11 | 2021-06-11 | 一种配置文件的加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113326077A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858012A (zh) * | 2022-12-30 | 2023-03-28 | 广州市易鸿智能装备有限公司 | 程序变量配置方法、装置、电子设备及存储介质 |
-
2021
- 2021-06-11 CN CN202110653862.4A patent/CN113326077A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858012A (zh) * | 2022-12-30 | 2023-03-28 | 广州市易鸿智能装备有限公司 | 程序变量配置方法、装置、电子设备及存储介质 |
CN115858012B (zh) * | 2022-12-30 | 2023-10-20 | 广州市易鸿智能装备有限公司 | 程序变量配置方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8745584B2 (en) | Dependency injection by static code generation | |
US7844948B2 (en) | Maintaining multiple valid concurrent serialized object versions | |
CN113377348B (zh) | 应用于任务引擎的任务调整方法、相关装置和存储介质 | |
US8181166B2 (en) | System and method for determining when an EJB compiler needs to be executed | |
US10114745B2 (en) | Assisted garbage collection in a virtual machine | |
EP1582985A2 (en) | Test case inheritance controlled via attributes | |
KR101276200B1 (ko) | Emf 모델의 동기화 방법 및 시스템 | |
US20220222106A1 (en) | Automatic run suspension management | |
CN110764913A (zh) | 基于规则调用的数据计算方法、客户端及可读存储介质 | |
US20220342698A1 (en) | Long-term programmatic workflow management | |
US20120159515A1 (en) | Sharing object representations | |
CN113326077A (zh) | 一种配置文件的加载方法及装置 | |
US8935657B2 (en) | Model-to-model transformation by kind | |
CN111752547A (zh) | 一种修改Java序列化对象序列号的方法及其应用 | |
CN114791865B (zh) | 一种基于关系图的配置项自洽性检测方法、系统和介质 | |
US7389515B1 (en) | Application deflation system and method | |
CN114968422A (zh) | 基于变量状态自动执行合约的方法和装置 | |
US10657476B2 (en) | Just in time compilation (JIT) for business process execution | |
US10635416B2 (en) | Property filtering | |
CN111737964A (zh) | 表格动态处理方法、设备及介质 | |
CN112035192A (zh) | 支持组件热部署的Java类文件加载方法及装置 | |
CN114443116A (zh) | 依赖注入方法、装置、电子设备以及计算机可读存储介质 | |
US6311227B1 (en) | Procedure calling method | |
Bergstra et al. | Instruction sequences with dynamically instantiated instructions | |
US20240241753A1 (en) | Command orchestration for digital twin models |
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 |