一种实现注解式配置的方法和装置制造方法及图纸

技术编号:23342728 阅读:26 留言:0更新日期:2020-02-15 03:40
本发明专利技术公开了实现注解式配置的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:读读取配置文件,以实现环境设置;创建组件工厂类,以及加组件定义;执行容器后处理器,然后同步配置信息;创建组件对象。该实施方式能够解决从字符串到程序类型转换出错,以及获取远程配置信息逻辑对业务侵入性高的问题。

A method and device to realize annotation configuration

【技术实现步骤摘要】
一种实现注解式配置的方法和装置
本专利技术涉及计算机
,尤其涉及一种实现注解式配置的方法和装置。
技术介绍
目前,绝大部分应用系统都需要一些配置信息。比如业务逻辑阈值的设置(一天允许单个用户下的单量)、一些开关的设置(是否走风控逻辑)。这类信息通常会存储到zookeeper(分布式的,开放源码的分布式应用程序协调服务)或自己实现的配置服务中心,采用被动通知或主动轮询的方式获取远程的值(都是字符串的形式),再转换为程序需要的数据类型(Integer、Boolean、Date等)然后缓存到本地(比如:JVM中某个静态变量中)。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:从“字符串”到“程序类型”的转换并且缓存到本地,这个处理过程,分散在应用需要配置信息的各个地方,对应用程序的业务逻辑具有一定的侵入性,而且如果和远程同步不当,还会影响正常的业务逻辑执行。
技术实现思路
有鉴于此,本专利技术实施例提供一种实现注解式配置的方法和装置,能够解决从字符串到程序类型转换出错,以及获取远程配置信息逻辑对业务侵入性高的问题。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种实现注解式配置的方法,包括读取配置文件,以实现环境设置;创建组件工厂类,以及加组件定义;执行容器后处理器,然后同步配置信息;创建组件对象。可选地,执行容器后处理器,然后同步配置信息,包括:解析@ConfigPath和@ConfigKey,以获得@ConfigPath和@ConfigKey分别对应的Key值、Value值;连接远程配置中心,判断是否存在@ConfigPath和@ConfigKey分别对应的Key值、Value值;如果存在,则获取远程配置中心的@ConfigPath的Key值、Value值,和@ConfigKey的Key值和Value值,以更新至本地;如果不存在,则在远程配置中心添加解析后的@ConfigPath的Key值、Value值,和@ConfigKey的Key值和Value值。可选地,对解析后的@ConfigPath的Key值、Value值,和解析后的@ConfigKey的Key值和Value值添加注解。可选地,获取远程配置中心的@ConfigPath的Key值、Value值,和@ConfigKey的Key值和Value值之前,包括:通过Spring框架的PropertyEditor把配置信息的字符串形式转换为Key对应数据类型的值;其中,配置信息为远程配置中心的@ConfigPath的Key值、Value值,和@ConfigKey的Key值和Value值。另外,根据本专利技术实施例的一个方面,提供了一种实现注解式配置的装置,包括设置模块,用于读取配置文件,以实现环境设置;创建组件工厂类,以及加载组件定义;配置模块,用于执行容器后处理器,然后同步配置信息,进而创建组件对象。可选地,所述配置模块执行容器后处理器,然后同步配置信息,包括:解析@ConfigPath和@ConfigKey,以获得@ConfigPath和@ConfigKey分别对应的Key值、Value值;连接远程配置中心,判断是否存在@ConfigPath和@ConfigKey分别对应的Key值、Value值;如果存在,则获取远程配置中心的@ConfigPath的Key值、Value值,和@ConfigKey的Key值和Value值,以更新至本地;如果不存在,则在远程配置中心添加解析后的@ConfigPath的Key值、Value值,和@ConfigKey的Key值和Value值。可选地,所述配置模块,还用于:对解析后的@ConfigPath的Key值、Value值,和解析后的@ConfigKey的Key值和Value值添加注解。可选地,所述配置模块获取远程配置中心的@ConfigPath的Key值、Value值,和@ConfigKey的Key值和Value值之前,包括:通过Spring框架的PropertyEditor把配置信息的字符串形式转换为Key对应数据类型的值;其中,配置信息为远程配置中心的@ConfigPath的Key值、Value值,和@ConfigKey的Key值和Value值。根据本专利技术实施例的另一个方面,还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实现注解式配置的实施例所述的方法。根据本专利技术实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一基于实现注解式配置的实施例所述的方法。上述专利技术中的一个实施例具有如下优点或有益效果:本专利技术通过注解式配置结合Spring(开放源代码的设计层面框架,解决的是业务逻辑层和其他各层的松耦合问题)特性,实现了一个对业务低侵入的配置信息同步客户端,从而做到了配置信息和类型的自动转换,同时统一配置信息的处理逻辑,而且对应用是透明低侵入的。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的实现注解式配置的方法的主要流程的示意图;图2是根据本专利技术可参考实施例的实现注解式配置的方法的主要流程的示意图;图3是根据本专利技术实施例的实现注解式配置的装置的主要模块的示意图;图4是本专利技术实施例可以应用于其中的示例性系统架构图;图5是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1是根据本专利技术实施例的实现注解式配置的方法的主要流程的示意图,所述实现注解式配置的方法可以包括:步骤S101,读取配置文件,以实现环境设置。步骤S102,创建组件工厂类,以及加载组件定义。较佳地,在本专利技术中采用的组件是Bean,而组件工厂类则为BeanFactory。进一步地,可以创建BeanFactory,以及加载Bean定义。步骤S103,执行容器后处理器,然后同步配置信息,进而创建组件对象。较佳地,如果采用的组件是Bean,则执行容器后处理器,然后同步配置信息,进而创建Bean对象。在进一步地实施例中,在执行容器后处理器,然后同步配置信息时,可以通过如下过程进行:解析@ConfigPath和@ConfigKey本文档来自技高网...

【技术保护点】
1.一种实现注解式配置的方法,其特征在于,包括:/n读取配置文件,以实现环境设置;/n创建组件工厂类,以及加组件定义;/n执行容器后处理器,然后同步配置信息;/n创建组件对象。/n

【技术特征摘要】
1.一种实现注解式配置的方法,其特征在于,包括:
读取配置文件,以实现环境设置;
创建组件工厂类,以及加组件定义;
执行容器后处理器,然后同步配置信息;
创建组件对象。


2.根据权利要求1所述的方法,其特征在于,执行容器后处理器,然后同步配置信息,包括:
解析@ConfigPath和@ConfigKey,以获得@ConfigPath和@ConfigKey分别对应的Key值、Value值;
连接远程配置中心,判断是否存在@ConfigPath和@ConfigKey分别对应的Key值、Value值;
如果存在,则获取远程配置中心的@ConfigPath的Key值、Value值,和@ConfigKey的Key值和Value值,以更新至本地;
如果不存在,则在远程配置中心添加解析后的@ConfigPath的Key值、Value值,和@ConfigKey的Key值和Value值。


3.根据权利要求2所述的方法,其特征在于,对解析后的@ConfigPath的Key值、Value值,和解析后的@ConfigKey的Key值和Value值添加注解。


4.根据权利要求2所述的方法,其特征在于,获取远程配置中心的@ConfigPath的Key值、Value值,和@ConfigKey的Key值和Value值之前,包括:
通过Spring框架的PropertyEditor把配置信息的字符串形式转换为Key对应数据类型的值;其中,配置信息为远程配置中心的@ConfigPath的Key值、Value值,和@ConfigKey的Key值和Value值。


5.一种实现注解式配置的装置,其特征在于,包括:
设置模块,用于读取配置文件,以实现环境设置;创建组件工厂类,以及加载组件定义;
配置模块,用于执行容器后处理器,然后同步配置信息,进而创建组件对象。
...

【专利技术属性】
技术研发人员:杨立昆
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1