掌桥专利:专业的专利平台
掌桥专利
首页

一种配置表管理方法、装置、设备及可读存储介质

文献发布时间:2023-06-19 18:58:26


一种配置表管理方法、装置、设备及可读存储介质

技术领域

本申请涉及配置表管理技术领域,更具体地说,涉及一种配置表管理方法、装置、设备及可读存储介质。

背景技术

在很多软件项目中都会用到一些MySQL数据库中的配置表,这些配置表中所存储的配置信息可能会在软件运行过程中时常需要修改。并且,这些配置表还可能开放给第三方,第三方可以直接修改表信息,而使用配置表的用户却并不知道第三方的修改。这样配置表管理起来就很混乱,可能经历了几次修改发现有问题时却不知道最开始的配置是什么,或者用户自身的配置被别人修改了而用户自身是不知道的,还不能复原。

综上所述,如何实现对配置表的管理,是目前本领域技术人员亟待解决的技术问题。

发明内容

有鉴于此,本申请的目的是提供一种配置表管理方法、装置、设备及可读存储介质,用于实现对配置表的管理。

为了实现上述目的,本申请提供如下技术方案:

一种配置表管理方法,包括:

获取MySQL数据库的binlog;

利用监听器从所述binlog中获取所述MySQL数据库中配置表的变化信息,并对所述变化信息进行解析,生成数据变更记录;

为每条所述数据变更记录生成对应的版本号;

根据所述binlog中的sql语句生成逆向sql语句,将所述sql语句和对应的逆向sql语句进行绑定,得到语句绑定关系;

对所述数据变更记录、所述数据变更记录对应的版本号、所述逆向sql语句及所述语句绑定关系进行存储。

优选的,所述binlog为ROW格式;

在根据所述binlog中的sql语句生成逆向sql语句之前,还包括:

从所述ROW格式的所述binlog中还原得到还原后sql;

获取所述配置表的基本信息;所述基本信息包括主键;

根据所述配置表的基本信息对所述还原后sql进行处理,得到所述sql语句。

优选的,在根据所述配置表的基本信息对所述还原后sql进行处理,得到所述sql语句之后,还包括:

将所述binlog中的sql语句及所述基本信息存储在原始sql表中。

优选的,根据所述binlog中的sql语句生成逆向sql语句,包括:

若所述sql语句为add语句,则生成与所述add语句对应的delete语句;

若所述sql语句为update语句,则生成与所述update语句对应的逆update语句;

若所述sql语句为delete语句,则生成与所述delete语句对应的add语句。

优选的,当所述sql语句对应多个逆向sql语句时,对所述逆向sql语句及所述语句绑定关系进行存储,包括:

将所述sql语句对应的多个所述逆向sql语句及所述绑定关系存储在逆向工程表中。

优选的,在利用监听器从所述binlog中获取所述MySQL数据库中配置表的变化信息之前,还包括:

配置所述监听器需要监听的配置表,并设置所述监听器的用于对所述binlog进行监听的监听接口。

优选的,为每条所述数据变更记录生成对应的版本号,包括:

为每条所述数据变更记录生成递增的版本号;

还包括:

记录指针位置;其中,所述指针位置默认指向最大版本号。

一种配置表管理装置,包括:

第一获取模块,用于获取MySQL数据库的binlog;

第二获取模块,用于利用监听器从所述binlog中获取所述MySQL数据库中配置表的变化信息,并对所述变化信息进行解析,生成数据变更记录;

第一生成模块,用于为每条所述数据变更记录生成对应的版本号;

第二生成模块,用于根据所述binlog中的sql语句生成逆向sql语句,将所述sql语句和对应的逆向sql语句进行绑定,得到语句绑定关系;

第一存储模块,用于对所述数据变更记录、所述数据变更记录对应的版本号、所述逆向sql语句及所述语句绑定关系进行存储。

一种配置表管理设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一项所述的配置表管理方法的步骤。

一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的配置表管理方法的步骤。

本申请提供了一种配置表管理方法、装置、设备及可读存储介质,其中,该方法包括:获取MySQL数据库的binlog;利用监听器从binlog中获取MySQL数据库中配置表的变化信息,并对变化信息进行解析,生成数据变更记录;为每条数据变更记录生成对应的版本号;根据binlog中的sql语句生成逆向sql语句,将sql语句和对应的逆向sql语句进行绑定,得到语句绑定关系;对数据变更记录、数据变更记录对应的版本号、逆向sql语句及语句绑定关系进行存储。

本申请公开的上述技术方案,获取MySQL数据库自己的binlog这一二进制文件,通过利用监听器从binlog中获取MySQL数据库中配置表的变化信息,并进行解析而生成数据变更记录,以实现对配置表变化信息的获取和记录,并且为每条数据变更记录生成对应的版本号,以便通过版本号进行数据变更记录区分和版本回溯等。另外,还根据binlog中的sql语句生成逆向sql语句,并得到二者的绑定关系,以便于后续根据绑定关系以及逆向sql语句实现版本回退、历史回溯。之后,对数据变更记录、数据变更记录对应的版本号、逆向sql语句及绑定关系进行存储,以便于通过存储的这些信息实现对配置表变化信息的查询、获取和版本回溯等管理,并且由于本申请是基于MySQL数据库的binlog进行配置表管理,因此,可以使配置表管理和原有的业务逻辑解耦,并不会对业务造成影响,而且在面对第三方直连MySQL数据库时也可以直接通过binlog监听到第三方的修改并进行记录,并且在进行版本回退时可以直接对相应的逆向sql语句进行执行,无需再从头执行一遍所有的变更记录,从而可以提高版本回退效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种配置表管理方法的流程图;

图2为本申请实施例提供的另一种配置表管理方法的流程图;

图3为本申请实施例提供的存储的核心数据示意图;

图4为本申请实施例提供的监听器中ROW格式的binlog读取到的数据示意图;

图5为本申请实施例提供的进行mysql-binlog-connector配置的示意图;

图6为本申请实施例提供的一种配置表管理装置的结构示意图;

图7为本申请实施例提供的一种配置表管理设备的结构示意图。

具体实施方式

当前生产环境中,MySQL数据库中的某些配置表被频繁改动或可能被第三方改动,导致配置表版本不可控,历史不可回溯,从而造成生产环境配置丢失或者配置无法复原的情况。现有针对配置表缺乏管理,版本混乱的问题,一般是采用在业务层增加版本记录模块来实现。对于第三方直连数据库的场景基本无法解决。且上述方式存在如下问题:1)版本记录模块需要深深嵌入业务代码中,对业务的侵入非常大,而且在面对不同的业务时都需要重新开发;2)这种方式存储时是以原数据入库的方式实现的,与原数据库操作是串联进行的,当配置表更新频繁时会造成一定的延时,管理效率比较低;3)当需要把数据库开放给第三方时,自己的业务层无法监听第三方的数据库操作;4)回退版本功能要么缺失,要么需要从头再执行一遍,消耗巨大。

为此,本申请提供一种配置表管理方法、装置、设备及可读存储介质,用于实现对配置表的管理。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参见图1和图2,其中,图1示出了本申请实施例提供的一种配置表管理方法的流程图,图2示出了本申请实施例提供的另一种配置表管理方法的流程图。本申请实施例提供的一种配置表管理方法,可以包括:

S11:获取MySQL数据库的binlog。

MySQL数据库自己是有一个记录的,这个记录就是MySQL数据库的binlog(BinaryLog),是MySQL执行改动时产生的二进制日志文件。其中,二进制日志(Binary Log)也可叫作变更日志(Update Log),是MySQL中非常重要的日志。主要用作记录数据库的变化情况,即sql语句的DDL(Data Definition Language,数据定义语言)和DML(Data ManipulationLanguage,数据操纵语言)语句,不包含数据记录查询操作。需要说明的是,一般binlog都是用在主从复制或者完全的数据恢复的。

基于binlog的特点,本申请获取MySQL数据库的binlog,以便于基于MySQL数据库的binlog对MySQL数据库中的配置表进行管理,这样就可以和原有的业务逻辑解耦。只要使用MySQL并开启binlog就可以进行记录的保存,以用于配置表管理。且由于binlog记录日志的方式是二进制文件,所以,在传输和保存的效率上会大大提高,并且文件的占用大小也会减小。

S12:利用监听器从binlog中获取MySQL数据库中配置表的变化信息,并对变化信息进行解析,生成数据变更记录。

考虑到binlog是二进制日志,它以一定的格式存储在磁盘上的文件中,并不能直接使用,它的可读性比较差,不能直接展示出来作为一个供使用者直接阅读并使用的版本记录,因此,本申请利用监听器来监听binlog的变化信息。其中,本申请所利用的监听器具体可以为mysql-binlog-connector,其是github上的一个开源项目,是二进制日志监听器。这个开源工具可以用来监听binlog的各类类型的变化,如增删改等。当MySQL数据库被修改时,通过mysql-binlog-connector可以立即得到此次修改的具体信息(也即得到变化信息),如修改了哪个数据库的哪个配置表,修改了哪几行,修改前和修改后的数据等等。当然,也可以利用canal(是数据同步中间件)进行实现,本申请优先采用mysql-binlog-connector。

具体地,可以利用监听器对MySQL数据库的binlog进行监听,以从MySQL数据库的binlog中获取MySQL数据库中配置表的变化信息。之后,可以对监听器监听到的变化信息进行解析,把关键信息收集起来,经过处理后整理成真正的具有高可读性的数据变更记录。其中,数据变更记录具体可以为文本形式,以供使用者直接阅读并使用。需要说明的是,这里监听获取的是配置表与上一次修改(也即上一版本)的区别,因此,在业务变更的时候无需调整业务,也即不会对业务造成影响。

在生成数据变更记录之后,可以将数据变更记录存储在版本记录表中,以便于后续直接查询版本记录表而得到配置表的修改情况等。

S13:为每条数据变更记录生成对应的版本号。

另外,为了便于区分数据变更记录,且为了便于版本回退和撤销修改,则可以为每条数据变更记录生成对应的版本号。

通过步骤S12和步骤S13可以解决记录收集和高可读性解析两个问题。

S14:根据binlog中的sql语句生成逆向sql语句,将sql语句和对应的逆向sql语句进行绑定,得到语句绑定关系。

另外,在获取MySQL数据库的binlog后,还可以根据MySQL数据库的binlog中的sql语句(与配置表每次的变化信息相对应)来反向生成回溯sql,即生成与sql语句对应的逆向sql语句(具体可以采用sql逆向技术-sqlReverseEngineering进行实现),以便于在需要进行版本回退时可以利用所生成的逆向sql进行版本回退(按照版本顺序依次进行回退)或者利用所生成的逆向sql进行变更动作撤销(直接利用逆向sql语句进行变更动作撤销)。

在生成逆向sql语句后,还可以将binlog中的sql语句和对应的逆向sql语句进行绑定,以得到sql语句和逆向sql语句的语句绑定关系,从而便于根据语句绑定关系进行版本回退或者变更动作撤销。

由于针对每个sql语句(也即针对每个数据变更记录)都会生成逆向sql语句,因此,在进行版本回退时就无需再从头执行一遍所有的变更记录,而是具体可以按照版本顺序依次进行回退或者直接进行变更动作撤销,从而提高版本回退效率。

S15:对数据变更记录、数据变更记录对应的版本号、逆向sql语句及语句绑定关系进行存储。

在生成数据变更记录、数据变更记录对应的版本号、逆向sql语句及语句绑定关系之后,可以对数据变更记录、数据变更记录对应的版本号、逆向sql语句及语句绑定关系进行存储,具体可以将这些信息存储在MySQL数据库中,以便于用户可以根据所存储的数据变更记录及版本号实现配置表变更操作的查询和获取等,并便于用户根据版本号、语句绑定关系、逆向sql快速进行版本回退等。

另外,在进行存储时,还可以对变化信息的修改者信息进行存储,以便于用户可以同时获取修改者信息。具体可以参见图3,其示出了本申请实施例提供的存储的核心数据示意图。

通过上述可知,本申请采用MySQL数据库的binlog来作为版本记录回退功能,并作为配置表变更操作记录,实现轻量化、可靠高效地进行配置表管理,且实现以最小化业务侵入的方式来进行配置表版本记录可视化、版本自由回滚。

本申请公开的上述技术方案,获取MySQL数据库自己的binlog这一二进制文件,通过利用监听器从binlog中获取MySQL数据库中配置表的变化信息,并进行解析而生成数据变更记录,以实现对配置表变化信息的获取和记录,并且为每条数据变更记录生成对应的版本号,以便通过版本号进行数据变更记录区分和版本回溯等。另外,还根据binlog中的sql语句生成逆向sql语句,并得到二者的绑定关系,以便于后续根据绑定关系以及逆向sql语句实现版本回退、历史回溯。之后,对数据变更记录、数据变更记录对应的版本号、逆向sql语句及绑定关系进行存储,以便于通过存储的这些信息实现对配置表变化信息的查询、获取和版本回溯等管理,并且由于本申请是基于MySQL数据库的binlog进行配置表管理,因此,可以使配置表管理和原有的业务逻辑解耦,并不会对业务造成影响,而且在面对第三方直连MySQL数据库时也可以直接通过binlog监听到第三方的修改并进行记录,并且在进行版本回退时可以直接对相应的逆向sql语句进行执行,无需再从头执行一遍所有的变更记录,从而可以提高版本回退效率。

本申请实施例提供的一种配置表管理方法,binlog为ROW格式;

在根据binlog中的sql语句生成逆向sql语句之前,还可以包括:

从ROW格式的binlog中还原得到还原后sql;

获取配置表的基本信息;基本信息包括主键;

根据配置表的基本信息对还原后sql进行处理,得到sql语句。

binlog有不同的binlog_format格式:STATEMENT、ROW和MIXED三种格式,其中,STATEMENT和MIXED都会记录sql语句。但是,如果是ROW格式,则不会记录sql语句。因此,当binlog为ROW格式时,则需要进行特殊的处理来还原sql语句。具体可以参见图4,其示出了本申请实施例提供的监听器中ROW格式的binlog读取到的数据示意图。ROW格式记录的是行数据,这种数据是不利于版本回退的,因此,需要对ROW格式的数据进行处理,使其变成一个一个的sql语句,如:

insert into deptVALUES(1,"小明","男","技术部")。

具体地,在根据binlog中的sql语句生成逆向sql语句之前,可以先从ROW格式的binlog中还原得到还原后sql。

并且,可以进行配置表初始化,获取配置表的基本信息,其中,基本信息中包括配置表的主键、字段等信息,后续会根据主键来定位批量修改时where字段后的查询条件(即列的字段名)。

在从ROW格式的binlog中还原得到还原后sql时,所得到的还原后sql其实是不能准确还原where后面的条件的(即不能知道列的字段),因为ROW格式只知道影响的行。因此,在本申请中,在获取配置表的基本信息后,可以根据配置表的基本信息(具体为配置表的主键),以配置表的主键信息来对还原后sql进行处理(具体可以作为where条件(即作为还原后sql中列字段)),从而得到binlog中的sql语句。

需要说明的是,在本申请中,考虑到STATEMENT格式和MIXED格式虽然会记录sql语句,但是对一些系统函数不能准确复制或不能复制,如now()、uuid()等,因此,为了保证数据达到高一致性和可靠性,本申请优选采用ROW格式的binlog。

本申请实施例提供的一种配置表管理方法,在根据配置表的基本信息对还原后sql进行处理,得到sql语句之后,还可以包括:

将binlog中的sql语句及基本信息存储在原始sql表中。

将binlog中的sql语句及基本信息存储在原始sql表(即original_sql_table)中,其中,该原始sql表具体可以位于MySQL数据库中,以实现利用原始sql表对binlog中的sql语句及基本信息的存储,从而便于用户从原始sql表中获取sql语句及基本信息。

本申请实施例提供的一种配置表管理方法,根据binlog中的sql语句生成逆向sql语句,可以包括:

若sql语句为add语句,则生成与add语句对应的delete语句;

若sql语句为update语句,则生成与update语句对应的逆update语句;

若sql语句为delete语句,则生成与delete语句对应的add语句。

在本申请中,在根据binlog中的sql语句生成逆向sql语句时,若binlog中的sql语句为add语句,则可以反向生成与add语句对应的delete语句;若binlog中的sql语句为update语句,则可以反向生成与update语句对应的逆update语句;若binlog中的sql语句为delete语句,则可以反向生成与delete语句对应的add语句,从而便于在需要版本回退时利用所生成的逆向sql语句准确地进行版本回退,以提高版本回退的可靠性和准确性。

本申请实施例提供的一种配置表管理方法,当sql语句对应多个逆向sql语句时,对逆向sql语句及语句绑定关系进行存储,可以包括:

将sql语句对应的多个逆向sql语句及绑定关系存储在逆向工程表中。

在本申请中,在一些批量的修改或删除中,binlog中的sql语句和逆向sql语句是一对多的关系。因此,为了便于更好地获取逆向sql语句,则当sql语句对应多个逆向sql语句时,在对逆向sql语句及语句绑定关系进行存储时,可以将sql语句对应的多个逆向sql语句及绑定关系存储在逆向工程表(即reverse_engineering_table)中,以实现利用一张专门的表来存储sql语句对应的多个逆向sql语句及绑定关系,从而便于用户进行查询,且便于进行版本回退。

本申请实施例提供的一种配置表管理方法,在利用监听器从binlog中获取MySQL数据库中配置表的变化信息之前,还可以包括:

配置监听器需要监听的配置表,并设置监听器的用于对binlog进行监听的监听接口。

在本申请中,在利用监听器从binlog中获取MySQL数据库中配置表的变化信息之前,可以配置监听器需要监听的配置表,以使得监听器可以准确地对需要监听的配置表进行监听而及时、准确地获取需要监听的配置表中的变化信息。

另外,还可以设置监听器的用于对binlog进行监听的监听接口,以利用所设置的监听接口来对binlog中需要监听的配置表进行监听,从而保证监听的可靠性。

其中,当监听器具体为mysql-binlog-connector时,则具体可以参见图5,其示出了进行mysql-binlog-connector配置的示意图,其中,table为需要监听的配置表,可以以逗号分隔配置多个。并且,对于mysql-binlog-connector可以设置mysql-binlog-connector监听器接口,如BinaryLogClient.EventListener等。此处为具体的代码实现逻辑。

本申请实施例提供的一种配置表管理方法,为每条数据变更记录生成对应的版本号,可以包括:

为每条数据变更记录生成递增的版本号;

还可以包括:

记录指针位置;其中,指针位置默认指向最大版本号。

在本申请中,在为每条数据变更记录生成对应的版本号时,具体可以为每条数据表更记录生成递增的版本号,也即可以按照版本号递增的方式为每条数据表更记录生成版本号。其中,版本号的初始值可以为1,也即第一条数据变更记录对应的版本号可以为1,第二条数据变更记录对应的版本号为2,第三条数据变更记录对应的版本号为3……,在此基础上,当需要进行回退操作时可以按照版本号倒序执行对应的逆向sql即可。

并且,在上述基础上,可以记录指针位置,版本的递进和版本的回退都依靠指针位置。其中,指针位置默认存在于最新节点,即默认执行原始sql表的最大版本号。版本变更可以通过版本号的+1或者-1来逐次的变更,也可以指出输入版本号来变更。递进时依据当前版本号从小到大依次执行binlog中的sql语句,回退时根据版本号从大到小依次执行逆向sql语句。

另外,本申请还可以提供版本记录查询接口(用于供版本记录查询)、版本递进接口(用于供版本递进)和版本回退接口(用于供版本回退),以供使用者调用相应接口而实现相应功能。

本申请实施例还提供了一种配置表管理装置,参见图6,其示出了本申请实施例提供的一种配置表管理装置的结构示意图,可以包括:

第一获取模块61,用于获取MySQL数据库的binlog;

第二获取模块62,用于利用监听器从binlog中获取MySQL数据库中配置表的变化信息,并对变化信息进行解析,生成数据变更记录;

第一生成模块63,用于为每条数据变更记录生成对应的版本号;

第二生成模块64,用于根据binlog中的sql语句生成逆向sql语句,将sql语句和对应的逆向sql语句进行绑定,得到语句绑定关系;

第一存储模块65,用于对数据变更记录、数据变更记录对应的版本号、逆向sql语句及语句绑定关系进行存储。

本申请实施例提供的一种配置表管理装置,binlog为ROW格式;

还可以包括:

还原模块,用于在根据binlog中的sql语句生成逆向sql语句之前,从ROW格式的binlog中还原得到还原后sql;

第三获取模块,用于获取配置表的基本信息;基本信息包括主键;

处理模块,用于根据配置表的基本信息对还原后sql进行处理,得到sql语句。

本申请实施例提供的一种配置表管理装置,还可以包括:

第二存储模块,用于在根据配置表的基本信息对还原后sql进行处理,得到sql语句之后,将binlog中的sql语句及基本信息存储在原始sql表中。

本申请实施例提供的一种配置表管理装置,第二生成模块64可以包括:

第一生成单元,用于若sql语句为add语句,则生成与add语句对应的delete语句;

第二生成单元,用于若sql语句为update语句,则生成与update语句对应的逆update语句;

第三生成单元,用于若sql语句为delete语句,则生成与delete语句对应的add语句。

本申请实施例提供的一种配置表管理装置,第一存储模块65可以包括:

存储单元,用于当sql语句对应多个逆向sql语句时,将sql语句对应的多个逆向sql语句及绑定关系存储在逆向工程表中。

本申请实施例提供的一种配置表管理装置,还可以包括:

配置模块,用于在利用监听器从binlog中获取MySQL数据库中配置表的变化信息之前,配置监听器需要监听的配置表,并设置监听器的用于对binlog进行监听的监听接口。

本申请实施例提供的一种配置表管理装置,第一生成模块63可以包括:

第四生成单元,用于为每条数据变更记录生成递增的版本号;

配置表管理装置还可以包括:

记录模块,用于记录指针位置;其中,指针位置默认指向最大版本号。

本申请实施例还提供了一种配置表管理设备,参见图7,其示出了本申请实施例提供的一种配置表管理设备的结构示意图,可以包括:

存储器71,用于存储计算机程序;

处理器72,用于执行存储器71存储的计算机程序时可实现如下步骤:

获取MySQL数据库的binlog;利用监听器从binlog中获取MySQL数据库中配置表的变化信息,并对变化信息进行解析,生成数据变更记录;为每条数据变更记录生成对应的版本号;根据binlog中的sql语句生成逆向sql语句,将sql语句和对应的逆向sql语句进行绑定,得到语句绑定关系;对数据变更记录、数据变更记录对应的版本号、逆向sql语句及语句绑定关系进行存储。

本申请实施例还提供了一种可读存储介质,可读存储介质中存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:

获取MySQL数据库的binlog;利用监听器从binlog中获取MySQL数据库中配置表的变化信息,并对变化信息进行解析,生成数据变更记录;为每条数据变更记录生成对应的版本号;根据binlog中的sql语句生成逆向sql语句,将sql语句和对应的逆向sql语句进行绑定,得到语句绑定关系;对数据变更记录、数据变更记录对应的版本号、逆向sql语句及语句绑定关系进行存储。

该可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请实施例提供的一种配置表管理装置、设备及可读存储介质中相关部分的说明可以参见本申请实施例提供的一种配置表管理方法中相关部分的详细说明,在此不再赘述。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术分类

06120115752678