关于property文件的使用
来源:互联网 发布:解压缩工具 for mac 编辑:程序博客网 时间:2024/05/29 18:20
1. 需求说明
需求:
实现实时更新数据
在一些系统中,可能有更改数据的需求.例如,在系统中我们使用了百度统计账号进行定期发送统计数据邮件.依照百度接口的需要,我们需要在功能模块里添加百度统计账号和密码等信息.假如某一天密码泄露,我们因此修改了百度统计账号的密码,而又不想影响线上系统的运行,此时就需要我们手动更新服务器上项目中密码信息.基于不能停止项目运行的需要,就可以采用property文件进行”热插拔”.
2. 实践
在系统中建立xxxx.properties文件,里面存放键值对,每次从文件取值时都从文件中读取一次.简要代码如下:
Properties properties = new Properties(); InputStream in = TestProperties_baidutongji.class.getClassLoader().getResourceAsStream("com/volcanno/config/baidutongji.properties"); properties.load(in); System.out.println(properties.getProperty("USERNAME"));
从网上看到一些伙伴说这种无法实现实时更新.经过实验,在我的机器上却实现了实时更新.
第二种方法:
String dirPath = Thread.currentThread().getContextClassLoader().getResource("").getPath(); File file = new File(dirPath,"com/volcanno/config/baidutongji.properties"); InputStream in = new FileInputStream(file);
这种方法google之后,普遍说是可以实现实时更新,且均作为弥补第一种方法缺陷(指不能实时更新,但我的实验是能够实时更新的.因此应该不能称之为实时更新)的方案.经过实验,的确可以实现实时更新.
3. 路上的坑
我用的开发工具是eclipse,不过发现eclipse似乎不能实时编译文件到classes目录下.之前测试一直不成功的原因就是,在程序运行时,我改动的一直都是src下面的properties文件.但是实际上,程序读取时编译后bin目录下的文件.且你的改动不能实时变化到bin目录下.如果我们在程序运行时改动bin目录下的文件就可以看到变化效果了.
阅读全文
0 0
- 关于property文件的使用
- 关于@property的使用
- 关于java的property文件
- 关于使用@property @synthesize的语法
- OC_关于property、synthesize的使用
- 关于python中@property的使用
- 关于python中@property的使用
- 关于Java property 文件,我的一些看法(1)
- 关于Java property 文件,我的一些看法(2)
- 关于@property的用法
- 关于@property&@synthesize使用详解
- 关于struts2标签的使用之s:property value=""
- property文件的操作
- 在JAVA文件中使用Spring读取的property
- property的使用
- @property 的使用
- ant的property使用
- @property 的使用
- Java 单循环打印九九乘法表
- 【错误解决】有关发送邮件带附件的错误
- The Little Girl who Picks Mushrooms
- [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher J (kmp扩展)
- JS正则表达式 ,reg.test()时,慎重全局查找/.../g属性
- 关于property文件的使用
- 【安全牛学习笔记】SMB扫描
- 原型模式
- 动态控制控件大小
- linux 安装 ffmpeg
- Ros Install---Ubuntu14.04
- 以太坊平台开源项目
- 国内TOP5数字化服务商中企动力舞动“管家服务”
- Retrofit 2.0