一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据处理方法及装置、计算机存储介质、电子设备与流程

2023-02-06 20:55:30 来源:中国专利 TAG:


1.本技术涉及计算机领域,特别涉及一种数据处理方法、数据处理装置、计算机存储介质及电子设备。


背景技术:

2.配置项在启动的时候都会被程序加载到内存中,但通常配置项是不能动态修改的,系统一旦启动,配置读入内存后,配置文件的变更就无法对内存生效了,为了应对该问题,动态配置技术应运而生。
3.目前常用的动态配置解决方案disconf包含服务端和客户端两部分,其中客户端与spring做了一定程度上的集成,需要用户引入客户端sdk(software development kit,软件开发工具包)后,将disconf的注解@disconffileitem加载到需要配置的spring对象的字段上,但是这种操作具有一定的代码侵入性,导致接入成本较高,另外服务端只能使用与disconf配套的服务器,不能随意切换。
4.鉴于此,本领域亟需开发一种新的数据处理方法及装置。
5.需要说明的是,上述背景技术部分公开的信息仅用于加强对本技术的背景的理解。


技术实现要素:

6.本技术的目的在于提供一种数据处理方法、数据处理装置、计算机存储介质及电子设备,进而至少在一定程度上避免了对现有系统进行代码改造以接入动态配置服务,降低了接入成本。
7.本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
8.根据本技术的第一方面,提供一种数据处理方法,应用于搭建有spring框架的客户端,包括:
9.调用配置查询接口,通过所述配置查询接口获取远端服务器中的全量配置信息,并根据所述配置信息进行配置初始化;
10.调用配置监听注册接口,通过所述配置监听注册接口获取所述远端服务器中的配置更新信息;
11.获取配置映射表,根据所述配置更新信息对所述配置映射表进行更新,并根据更新后的配置映射表对所述客户端的配置项进行更新。
12.在本技术的示例性实施例中,所述根据所述配置信息进行配置初始化,包括:
13.将所述配置信息加入到与所述spring框架对应的properties入参对象中,并将所述properties入参对象中的值注入到spring对象中。
14.在本技术的示例性实施例中,在获取配置映射表之前,所述方法还包括:
15.调用与spring对象对应的构造函数,并根据所述构造函数生成与所述spring对象
对应的对象实例;
16.对所述对象实例进行反射分析,以获取分析结果;
17.根据所述分析结果构建所述配置映射表。
18.在本技术的示例性实施例中,所述对所述对象实例进行反射分析,以获取分析结果,包括:
19.从所述对象实例中提取包含value注解的代码信息;
20.对所述代码信息进行配置项解析和字段解析,以获取配置项名和与所述配置项名对应的字段信息或者方法信息。
21.在本技术的示例性实施例中,所述根据所述配置信息构建配置映射表,包括:
22.将所述配置项名和与所述配置项名对应的所述字段信息或者所述方法信息进行映射,以形成所述配置映射表。
23.在本技术的示例性实施例中,所述配置更新信息包括更新配置项名和与所述更新配置项名对应的更新字段信息或者更新方法信息;所述根据所述配置更新信息对所述配置映射表进行更新,包括:
24.将所述更新配置项名与所述配置映射表中的配置项名进行比对;
25.当所述配置映射表中存在与所述更新配置项名相同的配置项名时,获取与所述配置项名对应的待更新字段信息或者待更新方法信息;
26.将所述待更新字段信息替换为所述更新字段信息,或者将所述待更新方法信息替换为所述更新方法信息,以实现对所述配置映射表的更新。
27.在本技术的示例性实施例中,所述方法还包括:
28.当所述配置映射表中不存在与所述更新配置项名相同的配置项名时,将所述更新配置项名和与所述更新配置项名对应的更新字段信息或者更新方法信息进行映射,并添加至所述配置映射表中。
29.在本技术的示例性实施例中,所述根据更新后的配置映射表对客户端的配置进行更新,包括:
30.当所述客户端启动时,根据所述配置更新表对各个配置项对应的字段进行修改或者调用对应的方法。
31.在本技术的示例性实施例中,所述方法还包括:
32.在调用所述配置查询接口之前,与所述远端服务器建立配置服务对接,并在所述远端服务器上注册配置查询服务;以及
33.在调用配置监听注册接口之前,在所述远端服务器上注册配置更新监听服务。
34.在本技术的示例性实施例中,所述方法还包括:
35.当所述远端服务器不支持所述配置更新监听服务时,在本地生成一线程,通过所述线程轮询所述远端服务器中的spring配置信息,以获取所述配置更新信息。
36.根据本技术的第二方面,提供一种数据处理装置,配置于搭建有spring框架的客户端,包括:
37.第一获取模块,用于调用配置查询接口,通过所述配置查询接口获取远端服务器中的全量配置信息;
38.构建模块,用于根据所述配置信息构建配置映射表;
39.第二获取模块,用于调用配置监听注册接口,通过所述配置监听注册接口获取所述远端服务器中发生变化的配置更新信息;
40.更新模块,用于根据所述配置更新信息对所述配置映射表进行更新,并根据更新后的配置映射表对客户端的配置进行更新。
41.根据本技术的第三方面,提供一种计算机存储介质,包括指令,当其在计算机上运行时,使得所述计算机执行上述的数据处理方法。
42.根据本技术的第四方面,提供一种电子设备,其特征在于,包括:
43.处理器;以及
44.存储器,用于存储所述处理器的可执行指令;
45.其中,所述处理器配置为经由执行所述可执行指令来执行上述的数据处理方法。
46.根据本技术的第五方面,提供一种包含指令的计算机程序产品,其特征在于,当所述指令在计算机上运行时,使得所述计算机执行上述的数据处理方法。
47.由上述技术方案可知,本技术示例性实施例中的数据处理方法、数据处理装置、计算机存储介质及电子设备至少具备以下优点和积极效果:
48.本技术中的数据处理方法,在客户端中搭建有spring框架,该spring框架中设置有配置查询接口和配置监听注册接口,通过调用配置查询接口可以获取远端服务器中的全量配置信息,并将配置信息注入到spring的初始化配置中,实现对客户端的配置初始化,接着可以调用配置监听注册接口获取远端服务器中的配置更新信息,然后获取配置映射表,根据配置更新信息对配置映射表进行更新,并根据更新后的配置映射表对客户端的配置进行更新。本技术中通过配置查询接口获取远端服务器中的全量配置信息,将配置信息注入到spring初始化的配置中,以实现对客户端的配置初始化,同时通过配置监听注册接口接收远端服务器中的配置更新信息,以对客户端中的配置信息进行更新,这样就可以把远端配置作为本地配置,实现无代码侵入地将本地spring配置的工程切换为具备远程配置能力的工程,降低了spring的接入成本;另外由于在动态配置时,只是从远端服务器中获取配置信息,接入方式还是用原来spring的处理方式接入,对接到原来的spring处理流程中,这样远端配置与本地配置一样可以实现spring的级联、spel表达式的分析,等等,也就说,本技术实施例能够与spring深度集成,拥有spring强大的配置功能。
49.本技术应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
50.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
51.图1示出应用本技术实施例的技术方案的示例性系统架构;
52.图2示出本技术示例性实施例中数据处理方法的流程示意图;
53.图3示出本技术示例性实施例中spring框架整体架构的结构示意图;
54.图4示出本技术示例性实施例中配置映射表的结构示意图;
55.图5示出本技术示例性实施例中反射分析的流程示意图;
56.图6示出本技术示例性实施例中根据配置更新信息对配置映射表进行更新的流程示意图;
57.图7示出本技术示例性实施例中数据处理装置的结构示意图;
58.图8示出本技术示例性实施例中电子设备的结构示意图;
59.图9示出本技术示例性实施例中计算机存储介质的结构示意图。
具体实施方式
60.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本技术的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本技术的各方面变得模糊。
61.本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
62.此外,附图仅为本技术的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
63.在本技术的相关技术中,通常采用开源的动态配置解决方案disconf进行动态配置,该方案中包含服务端和客户端两部分,其中客户端与spring做了一定程度上的集成,需要开发人员引入客户端sdk后,将注解@disconffileitem加载到需要配置的spring对象的字段上。
64.但是该方案存在一定的弊端,首先,在将disconf的注解加载到需要配置的spring对象的字段上时,具有一定的代码侵入性;其次,服务端只能使用disconf配套的服务端,不能随意切换;再次,spring的配置十分强大,例如具有配置级联、spel等功能,但是在使用disconf方案的基础上,无法复用spring的这些功能,也就是说,无法与spring深度集成,失去了spring强大的配置功能。
65.另外,即使采用其它的动态配置解决方案,但通常新业务开始启动的时候,要求快速,因此很多系统不会接入动态配置,而到了后期需要增加系统易用性时,需要对现有系统做一定程度的代码改造,才能接入现有的远端配置服务器,接入成本较高。
66.针对相关技术中存在的问题,本技术实施例提供了一种数据处理方法,涉及一种新的动态配置方案。
67.在对本技术实施例中的技术方案进行详细说明之前,首先对本技术实施例中可能涉及到的技术名词进行解释和说明。
68.(1)动态配置:配置项可以动态修改,并在系统启动、配置读入内存后,配置文件的变更也对内存生效。
69.(2)spring框架:spring作为java技术栈中最常用的应用框架,提供了依赖注入、切面编程、配置解析等一系列java开发人员在实际生产过程中常用的功能。其中配置解析方面,spring能够与多种标准的配置格式进行集成,包含properties、yml、toml、json等,同时也能够通过spring的扩展点进行自定义配置格式解析。
70.spring提供了两种配置文件与代码深度集成的方式:1)在spring的配置文件中,以“${配置项名}”的格式引用配置文件中配置项名对应的真实值;2)在基于spring的工程代码中,配合value注解,以“@value(“$(配置项名)”)”的格式修饰spring托管对象字段或方法,在spring框架启动初始化阶段,将配置文件中的值注入到被注解修饰的字段或方法入参中。
71.在介绍本技术使用到的一些技术名词之后,以下结合图1对应用本技术技术方案的示例性系统架构进行说明:
72.图1示出了应用本技术实施例的技术方案的示例性系统架构,系统架构100具体可以包括客户端101、网络102以及服务器103。其中,客户端101可以是智能手机、便携式计算机、平板电脑等终端设备,当然还可以是其它类型的终端设备,包括但不限于上述的终端设备;网络102用以在客户端和服务器之间提供通信链路的介质,网络可以包括各种连接类型,例如有线通信链路、无线通信链路等等;服务器103可以是远端可提供动态配置的服务器,开发人员可以在服务器103中对配置项进行更改或者添加配置项,然后下发至各个客户端101,服务器103可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
73.应该理解,客户端101、网络102和服务器103的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端101、网络102和服务器103。值得说明的是,本技术中的服务器103可以是独立的服务器或者是多个服务器形成的服务器集群。
74.接下来,对本技术实施例中的数据处理方法进行详细说明。
75.本技术中的数据处理方法可以由搭建有spring框架的客户端执行,如图1中所示的客户端101,当然也可以由服务器执行。图2示出了以搭建有spring框架的客户端为执行主体的数据处理方法的流程图,如图2所示,数据处理方法包括:
76.步骤s210:调用配置查询接口,通过所述配置查询接口获取远端服务器中的全量配置信息,并根据所述配置信息进行配置初始化;
77.步骤s220:调用配置监听注册接口,通过所述配置监听注册接口获取所述远端服务器中发生变化的配置更新信息;
78.步骤s230:获取配置映射表,根据所述配置更新信息对所述配置映射表进行更新,并根据更新后的配置映射表对客户端的配置进行更新。
79.本技术的数据处理方法,一方面,通过配置查询接口获取远端服务器中的全量配置信息,将配置信息注入到spring初始化的配置中,以实现对客户端的配置初始化,同时通过配置监听注册接口接收远端服务器中的配置更新信息,以对客户端中的配置信息进行更
新,这样就可以把远端配置作为本地配置,实现无代码侵入地将本地spring配置的工程切换为具备远程配置能力的工程,降低了spring的接入成本;另一方面,由于在动态配置时,只是从远端服务器中获取配置信息,接入方式还是用原来spring的处理方式接入,对接到原来的spring处理流程中,这样远端配置与本地配置一样可以实现spring的级联、spel表达式的分析,等等,也就说,本技术实施例能够与spring深度集成,拥有spring强大的配置功能。
80.下面对数据处理方法的各个步骤进行详细说明。
81.在步骤s210中,调用配置查询接口,通过所述配置查询接口获取远端服务器中的全量配置信息,并根据所述配置信息进行配置初始化。
82.在本技术的示例性实施例中,为了将远端服务器与客户端顺利对接,首先需要在客户端中搭建spring框架,这样开发人员仅通过对服务器中的配置项进行简单操作,即可对客户端中对应的系统配置进行修改,实现动态配置。
83.图3示出了spring框架整体架构的结构示意图,如图3所示,spring框架300包括依次连接的配置服务对接实现层301、配置处理层302和spring对接层303。其中:
84.配置对接实现层301是与客户端所要对接的远端服务器对应的对接服务层,通过配置对接实现层301可以将客户端桥接到相应的远端服务器上,也就是说,客户端可以通过配置对接实现层301获取远端服务器中的信息;
85.配置处理层302根据动态配置所涉及的任务的不同,可以抽象出两个接口:配置查询接口302-1和配置监听注册接口302-2,配置查询接口302-1可以通过配置服务对接实现层301获取远端服务器中的全量配置信息,配置监听注册接口302-2可以通过配置服务对接实现层301获取远端服务器中的配置更新信息,同时在配置处理层302中还可以实现本地配置缓存以及加密等功能,是整个架构的核心逻辑所在;并且通过配置处理层302实现了远端配置服务接口差异的屏蔽,开发人员做远端配置服务迁移时无需做任何本地代码变更,只需要配置不同的远端服务器实现即可;
86.spring对接层303对spring配置管理进行了封装,在接收到配置处理层302发送的关于配置信息和配置更新信息的通知后,调用spring api(application programming interface,应用程序编程接口)将配置信息注入到spring的初始化配置中,以及将配置更新信息路由到spring中真实需要变动的对象字段上。
87.在本技术的示例性实施例中,远端服务器可以是客户端需要对接的能够提供目标服务的远端服务器,如图3中所示,远端服务器可以是disconf动态配置服务器、基于zookeeper的动态配置服务器,或者其它类型的动态配置服务器,又或者可以是存储spring配置表的数据库服务器,等等。客户端根据不同业务需求可以对接不同的远端服务器,当客户端对接的远端服务器不同时,配置服务对接实现层301中的对接服务也不同,例如当远端服务器是disconf动态配置服务器时,配置服务对接实现层301中的对接服务就是与其对应的disconf对接服务,当远端服务器是存储spring配置表的数据库服务器时,配置服务对接实现层301中的对接服务就是与其对应的数据库配置对接服务,等等。当开发人员做远端配置服务迁移时,只需要在客户端对接不同的远端服务器即可。
88.在本技术的示例性实施例中,在完成spring架构的搭建后,可以启动客户端,spring调用refresh方法进行系统初始化。在初始化时,首先客户端可以通过配置服务对接
实现层301在远端服务器上注册配置查询服务;接着调用配置查询接口302-1,配置查询接口302-1与对应的配置对接服务对接,通过该配置对接服务从远端服务器中获取全量的配置信息,在获取配置信息后,通过配置处理层302将配置信息发送至spring对接层303,以使spring对接层303将配置信息注入至spring的初始化配置中;然后可以通过配置服务对接实现层301在远端服务器上注册配置更新监听服务,以对远端服务器中的配置更新情况进行实时监听;最后根据注入的远端服务器中的配置信息进行spring自身的配置初始化,至此系统初始化完成。
89.在本技术的示例性实施例中,客户端系统启动时,调用refresh方法进行初始化的过程中,会重载spring中的properties loader support类、yml loader support类、jason loader support类,等等,实现load properties方法。在spring的生命周期中,该方法在系统重启加载配置文件时被调用。在该方法中,将原始的读取本地properties文件、yml文件、jason文件等中的配置信息修改为调用配置查询接口,获取从远端服务器上查询到的配置信息,并将配置信息加入到spring能够识别的properties入参对象中。通过配置信息获取路径的改变,远端服务器中的配置项就能够与spring联动起来,承接着spring的配置注入流程注入到各个spring对象中。另外,由于远端服务器中的配置项与spring实现了联动,那么开发人员就可以无需变更代码,将本地的spring配置工程切换为具备远程配置能力的工程,降低了spring的接入成本。
90.进一步地,在初始化过程中,还可以重载bean post processor类,实现其中的post process before initialization方法。在spring的生命周期中,spring调用每个spring对象bean的构造函数生成对象实例,接着可以将该对象实例作为入参,回调该方法,然后在该方法中对每个spring对象实例进行反射分析,以获取分析结果,最后根据分析结果可以构建得到配置映射表。其中,分析结果包括配置项名和与配置项名对应的字段信息或者方法信息,在构建配置映射表时,将配置项名和对应的字段信息或者方法信息进行一一映射即可。
91.通过设置配置映射表,可以在远端终端中的配置项发生变更时,准确快速地查找应该更新的字段或者应该调用的方法,提高了更新效率。
92.图4示出了配置映射表的结构示意图,如图4所示,配置映射表中包含多组映射关系,其中配置项名包括配置项a、配置项b、配置项c,与配置项a对应的字段信息为字段a、与配置项b对应的字段信息为字段b、与配置项c对应的方法信息为方法c,通过相互映射,即可形成配置映射表。
93.在本技术的示例性实施例中,对spring对象实例进行反射分析时,可以从spring对象实例中提取包含value注解的代码信息,然后对该代码信息进行配置项解析和字段解析或者方法解析,以获取配置项名和与配置项名对应的字段信息或者方法信息。
94.图5示出了反射分析的流程示意图,如图5所示,从对象实例中提取的包含value注解的代码信息501为@value(“${test.config.a}”)private string testfielda,通过对其进行配置项解析可以得到配置项名502为test.config.a,对其进行字段解析可以得到字段信息503为testfielda,最后将test.config.a和testfielda进行映射,并添加至配置映射表中即可。
95.根据图5所示的方法可以对任意的spring对象实例进行反射分析,获取所有的配
置项名和对应的字段信息或者方法信息,并在一一映射后即可构建得到配置映射表。
96.在本技术的示例性实施例中,在构建得到配置映射表后,当开发人员在远端服务器中更新了配置信息时,便可以根据更新后的配置信息对配置映射表进行更新,进而将更新后的配置信息注入到spring对应的字段中或者调用更新后的方法。
97.在步骤s220中,调用配置监听注册接口,通过所述配置监听注册接口获取所述远端服务器中发生变化的配置更新信息。
98.在本技术的示例性实施例中,由于在客户端系统初始化的过程中,在远端服务器上注册了配置变更监听服务,因此可以调用配置监听注册接口,将配置监听注册接口与对应的配置对接服务进行对接,以获取远端服务器发送的配置更新信息。
99.值得说明的是,当注册配置监听服务后,配置监听服务持续监听远端服务器中的配置变更消息,当远端服务器中的配置信息不存在变更的情况时,配置监听服务处于等待状态,只有在配置监听服务监听到远端服务器中存在配置变更时,才通过配置监听注册接口获取配置更新信息,并根据配置更新信息对客户端的配置进行相应地更新。
100.在本技术的示例性实施例中,远端服务器中针对部分类型的配置服务不支持配置变更监听,例如存储spring配置表的数据库服务器上就无法注册配置变更监听服务,进而无法在配置发生变更后,向客户端发送配置变更消息。在这种情况下,开发人员可以在客户端本地建立一个线程,对数据库服务器中的spring配置表进行轮询,当发现spring配置表中的配置信息发生变更时,获取配置更新信息,并将该配置更新信息通过spring对接层注入到spring配置管理中,进而根据配置更新信息对客户端的配置进行更新。
101.在步骤s230中,获取配置映射表,根据所述配置更新信息对所述配置映射表进行更新,并根据更新后的配置映射表对客户端的配置进行更新。
102.在本技术的示例性实施例中,上述实施例中提到,通过设置配置映射表,可以在远端终端中的配置项发生变更时,准确快速地查找应该更新的字段或者应该调用的方法,因此在获取配置更新信息后,可以根据配置更新信息对配置映射表进行更新,进而根据更新后的配置映射表对客户端的配置进行更新。
103.在本技术的示例性实施例中,配置信息的更新包括修改和新增两种情况,当开发人员在远端服务器中修改了配置信息时,配置映射表中存在与配置更新信息相同的配置项名,那么只需采用新的配置信息替换旧的配置信息即可,当开发人员在远端服务器中新增了配置信息时,那么配置映射表中不存在与配置更新信息相同的配置项名,那么无需对本地配置进行任何处理。
104.图6示出了根据配置更新信息对配置映射表进行更新的流程示意图,如图6所示,在步骤s601中,将所述更新配置项名与所述配置映射表中的配置项名进行比对;在步骤s602中,当所述配置映射表中存在与所述更新配置项名相同的目标配置项名时,获取与所述目标配置项名对应的待更新字段信息或者待更新方法信息;在步骤s603中,将所述待更新字段信息替换为所述更新字段信息,或者将所述待更新方法信息替换为所述更新方法信息,以实现对所述配置映射表的更新;在步骤s604中,当所述配置映射表中不存在与所述更新配置项名相同的目标配置项名时,对所述配置映射表不作处理。
105.在本技术的示例性实施例中,在完成对配置映射表的更新后,可以根据更新后的配置映射表对客户端的配置进行更新,具体而言,当客户端启动运行时,可以根据更新后的
配置映射表对spring中各个配置项对应的字段进行修改或者调用相应的方法。
106.本技术实施例中的数据处理方法,在客户端中搭建有spring框架,通过调用客户端中的配置查询接口获取远端服务器中的全量配置信息,根据该配置信息可以进行配置初始化,接着调用配置监听注册接口以获取远端服务器中的配置更新信息,根据该配置更新信息可以对配置映射表进行更新,进而根据更新后的配置映射表对客户端的配置项进行更新。本技术实施例中的数据处理方法相对于相关技术中的disconf动态配置方案,最大的不同点在于,专注于面向基于spring的客户端,提供便利的spring集成,对于原本使用spring本地配置的开发人员,无需修改代码,只需要修改spring配置,即可将spring的配置从本地切换至远端服务器,也就是说,开发人员只需要对远端服务器上的配置信息进行更新,即可实现对客户端中的配置信息的更新,并且不需要进行代码修改,降低了接入成本;另外,本技术实施例中提供了一种新的动态配置方案,从远端服务器中获取配置信息,并用spring的处理方式对接到spring处理流程中,这样就使得远端配置与本地配置一样,可以完整的使用spring强大的配置功能,例如配置级联、spel表达式的分析等等。
107.本技术还提供了一种数据处理装置,图7示出了数据处理装置的结构示意图,该数据处理装置配置于搭建有spring框架的客户端,如图7所示,数据处理装置700包括第一获取模块701、第二获取模块702和更新模块703。其中:
108.第一获取模块701,用于调用配置查询接口,通过所述配置查询接口获取远端服务器中的全量配置信息,并根据所述配置信息进行配置初始化;
109.第二获取模块702,用于调用配置监听注册接口,通过所述配置监听注册接口获取所述远端服务器中发生变化的配置更新信息;
110.更新模块703,用于获取配置映射表,根据所述配置更新信息对所述配置映射表进行更新,并根据更新后的配置映射表对客户端的配置进行更新。
111.在本技术的一个实施例中,所述第一获取模块701配置为:将所述配置信息加入到与所述spring框架对应的properties入参对象中,并将所述properties入参对象中的值注入到spring对象中。
112.在本技术的一个实施例中,所述数据处理装置700还包括:生成模块,用于在获取配置映射表之前,调用与spring对象对应的构造函数,并根据所述构造函数生成与所述spring对象对应的对象实例;分析模块,用于对所述对象实例进行反射分析,以获取分析结果;构建模块,用于根据所述分析结果构建所述配置映射表。
113.在本技术的一个实施例中,所述分析模块配置为:从所述对象实例中提取包含value注解的代码信息;对所述代码信息进行配置项解析和字段解析,以获取配置项名和与所述配置项名对应的字段信息或者方法信息。
114.在本技术的一个实施例中,所述构建模块配置为:将所述配置项名和与所述配置项名对应的所述字段信息或者所述方法信息进行映射,以形成所述配置映射表。
115.在本技术的一个实施例中,所述配置更新信息包括更新配置项名和与所述更新配置项名对应的更新字段信息或者更新方法信息;所述更新模块703配置为:将所述更新配置项名与所述配置映射表中的配置项名进行比对;当所述配置映射表中存在与所述更新配置项名相同的目标配置项名时,获取与所述目标配置项名对应的待更新字段信息或者待更新方法信息;将所述待更新字段信息替换为所述更新字段信息,或者将所述待更新方法信息
替换为所述更新方法信息,以实现对所述配置映射表的更新。
116.在本技术的一个实施例中,所述更新模块703还配置为:当所述配置映射表中不存在与所述更新配置项名相同的目标配置项名时,对所述配置映射表不作处理。
117.在本技术的一个实施例中,所述更新模块703还配置为:当所述客户端启动时,根据所述配置更新表对各个配置项对应的字段进行修改或者调用对应的方法。
118.在本技术的一个实施例中,所述数据处理装置700还配置为:在调用所述配置查询接口之前,与所述远端服务器建立配置服务对接,并在所述远端服务器上注册配置查询服务;以及,在调用配置监听注册接口之前,在所述远端服务器上注册配置更新监听服务。
119.在本技术的一个实施例中,所述数据处理装置700还配置为:当所述远端服务器不支持所述配置更新监听服务时,在本地生成一线程,通过所述线程轮询所述远端服务器中的spring配置信息,以获取所述配置更新信息。
120.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
121.此外,尽管在附图中以特定顺序描述了本技术中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
122.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本技术实施方式的方法。
123.在本技术的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
124.所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
125.下面参照图8来描述根据本发明的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
126.如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830和显示单元840。
127.其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图2中所示的步骤s210:调用配置查询接口,通过所述配置查询接口获取远端服务器中的全量配置信息,并根据所述配置
信息进行配置初始化;步骤s220:调用配置监听注册接口,通过所述配置监听注册接口获取所述远端服务器中发生变化的配置更新信息;步骤s230:获取配置映射表,根据所述配置更新信息对所述配置映射表进行更新,并根据更新后的配置映射表对客户端的配置进行更新。
128.存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(rom)8203。
129.存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
130.总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
131.电子设备800也可以与一个或多个外部设备1400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
132.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本技术实施方式的方法。
133.在本技术的示例性实施例中,还提供了一种计算机存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
134.参考图9所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
135.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或
半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
136.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
137.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
138.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
139.此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
140.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其他实施例。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由权利要求指出。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献