[发明专利]一种属性加载方法及系统有效
申请号: | 201210491384.2 | 申请日: | 2012-11-27 |
公开(公告)号: | CN103838564B | 公开(公告)日: | 2017-02-15 |
发明(设计)人: | 于建军 | 申请(专利权)人: | 重庆新媒农信科技有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 重庆市前沿专利事务所(普通合伙)50211 | 代理人: | 郭云 |
地址: | 401121 重庆市渝北区北部新区*** | 国省代码: | 重庆;85 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 属性 加载 方法 系统 | ||
技术领域
本发明涉及JAVA应用开发技术领域,具体涉及一种能够将外部系统对属性文件的更新需要及时反映出来的属性加载方法及系统。
背景技术
在利用JAVA技术开发的系统中,当应用系统的属性设置为可配置时,该属性的值被写入属性文件/配置文件中,在该属性文件/配置文件中这些属性的值可以进行更改,因此这些属性称为动态属性。现实系统中,一个系统内部的属性文件很可能是由外部系统维护的,因此外部系统对属性文件的更新需要及时反映出来,这就是动态属性的需求。
在现有常规的属性文件开发中,一般有两种模式,一是静态模式,即使用Spring的PropertyPlaceholderConfigurer技术一次性加载文件,并在需要的类中以传统的“$属性Key”方式注入;另一种模式是动态模式,即开发者自己实现属性文件管理器,以代码的方式在需要调用的地方进行调用。对于前一种模式,优点是方便,不需要开发人员手工编码,但无法达到动态改变属性值的目的;而后一种模式由于是代码级的随用随调,虽然能实现动态功能,但会带来大量的代码编写,提高了复杂度和成本。
因此,寻找一种既能便利配置又不需要大量的代码编写的实现属性文件及时更新的属性加载方法是一个亟需解决的问题。
发明内容
为了克服上述现有技术中存在的缺陷,本发明的目的是提供一种动态属性加载方法及系统,该方法既能实现动态属性的便利配置又不需要大量的代码编写,降低了复杂度和成本。
为了实现本发明的上述目的,根据本发明的第一个方面,本发明提供了一种动态属性加载方法,包括如下步骤:
S1:抽象属性值来源,其中所述抽象属性值来源是判断所述属性值是动态属性来源还是静态属性来源,如果是动态属性来源,则执行步骤S2;如果是静态属性来源,则判断本地是否已经存在所述属性值,如果不存在,则执行步骤S 3;
S2:定时对所述属性值对应的属性文件进行状态检查,如果属性文件与历史记录对比没有修改,则返回步骤S1,如果属性文件与历史记录对比有修改,则执行步骤S3;
S3:对所述属性文件的数据类型按照强制化约定进行转换;
S4:加载所述转换后的属性文件。
本发明的动态属性加载方法既能实现动态属性和静态属性的便利配置又不需要大量的代码编写,能够在提高应用便捷性的同时降低复杂度和成本。本发明无论在开发中需要动态属性还是静态属性,都可以使用同样的配置和代码编写方式进行,保持了项目组的开发规范的统一。
在本发明的一种优选实施例中,在步骤S1中,对所述属性值来源进行定时检查。
在本发明的另一种优选实施例中,所述方法还包括通过任务执行器ScheduledExecutorFactoryBean设置心跳周期,如果所述心跳周期到了而所述属性文件未修改则不再重新加载。本发明对属性文件来源进行定时检查并设置心跳周期,从而达到动态属性的目标。
在本发明的一种优选实施例中,通过属性文件的修改状态检查器PropertyFilesModificationStateChceker对所述属性文件进行状态检查。
本发明的属性文件如果和上次的历史记录对比没有修改则不需要加载属性文件,从而降低对资源的消耗。
在本发明的另一种优选实施例中,所述属性文件的数据类型的强制化约定为:在JDK的7种数据类型中,除字符属性数据类型StringPropertyDataType之外的数据类型都加上同步锁,日期属性数据类型DatePropertyDataType需要在配置文件中注入日期转换格式Pattern;其中所述JDK的7种数据类型包括布尔属性数据类型BooleanPropertyDataType、日期属性数据类型DataPropertyDataType、整型属性数据类型IntPropertyDataType、浮点属性数据类型FloatPropertyDataType、双精度浮点属性数据类型DoublePropertyDataType、长整型属性数据类型LongPropertyDataType、字符属性数据类型StringPropertyDataType。
本发明同时对应于JDK的7种级别数据类型做出的属性数据类型强制化约定能对属性值进行强制类型检查,可满足任何的属性需求场景,能够提高后台代码运行的安全性。
在本发明的一种优选实施例中,通过默认动态属性来源DefaultDynamicPropertySource实现属性文件加载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆新媒农信科技有限公司,未经重庆新媒农信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210491384.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:治疗甲状腺肿的中药
- 下一篇:一种人机接口装置自动操作流程