Java中动态加载properties文件,而不需要重启应用的解决方法
在Java项目中,如果需要使用.properties类型的文件作为某些配置信息存放介质的时候,一般都是将.properties文件放在src目录下,代码大部分都是这样写的:
- Properties prop = new Properties();
- InputStream is = CommonUtils.class.getClassLoader().getResourceAsStream("config.properties");//假设当前这个方法是在CommonUtils类下面
- prop.load(is);
在系统启动之后,config.properties中的key-value信息都可以获取,但是某一天,你想改变一下config.properties中的相关配置,但是又不能重启应用,你就会发现,明明已经修改了config.properties文件内容,为什么读出来的信息还是原先的?
经过google后发现,原来使用
- CommonUtils.class.getClassLoader().getResourceAsStream("config.properties")
这种加载方法会将config.properties文件加载到内存中,在下次需要读取时直接从内存中获取文件信息,而不是再次读取!
既然以上方法会将文件信息缓存,那么我只要改变一下文件的输入流获取方式就行了。
改成如下方式就行了:
- Properties prop = new Properties();
- String path = CommonUtils.class.getClassLoader().getResource("config.properties").getPath();
- InputStream is = new FileInputStream(path);
- prop.load(is);
或者
- String dirPath = Thread.currentThread().getContextClassLoader().getResource("").getPath();//获取config.properties文件所在的父目录
- File file = new File(dirPath,"config.properties");
相关推荐
Java加载properties文件的六种方法
解决JAVA读取properties中文乱码问题
java 改变Properties文件中的键值 java 改变Properties文件中的键值
Java 修改Properties文件,src下或者指定路径下的文件。 如果需要修改Properties文件,打成Jar包后又不可以修改。 只能把Properties文件提出jar外进行Properties资源文件修改。
什么是properties文件为什么要使用properties文件使用java加载properties文件的两种方式使用类的加载器获得输入流加载文件getResourceAsStream()介绍使用文件输入流加载文件实现动态加载properties文件,不用重启的...
java 读取properties文件代码
properties文件获取工具类:静态加载properties配置文件,有根据key获取值的方法
此工具类只用于Java后端在操作Properties文件的时候写的工具类,方便properties文件的存取操作
java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题
用JAVA轻松操作properties文件.txt
java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题
利用java的反射解析Properties文件转成对象 /** * 解析properties文件为对象 * @param * @param propPath * @param cls * @return * @throws InstantiationException * @throws ...
java读写properties配置文件
Spring3.0 配置文件中加载Properties文件的小例子
其中,gradle.properties中的内容不需要显示调用就可以直接在build.gradle中进行使用(local.properties暂时无法直接验证)。 properties其实是Java项目中的配置文件,不是Gradle独创的。又因为Gradle语法可以和Java...
ConfigFile configfile = ConfigFile.getInstance("ipConfig123.properties"); String ip = configfile.getkeyvalue("ip"); 可以取出ipConfig123.properties 文件中IP的内容
ava中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去...
主要介绍了Java加载properties文件实现方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
动态加载properties 动态加载properties
java properties java应用实例 java properties java应用实例