`
marb
  • 浏览: 422374 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java中动态加载properties文件,而不需要重启应用的解决方法

    博客分类:
  • JAVA
 
阅读更多

在Java项目中,如果需要使用.properties类型的文件作为某些配置信息存放介质的时候,一般都是将.properties文件放在src目录下,代码大部分都是这样写的:

[java] view plaincopy
 
  1. Properties prop = new Properties();  
  2. InputStream is = CommonUtils.class.getClassLoader().getResourceAsStream("config.properties");//假设当前这个方法是在CommonUtils类下面  
  3. prop.load(is);  

在系统启动之后,config.properties中的key-value信息都可以获取,但是某一天,你想改变一下config.properties中的相关配置,但是又不能重启应用,你就会发现,明明已经修改了config.properties文件内容,为什么读出来的信息还是原先的?

经过google后发现,原来使用

[java] view plaincopy
 
  1. CommonUtils.class.getClassLoader().getResourceAsStream("config.properties")  

这种加载方法会将config.properties文件加载到内存中,在下次需要读取时直接从内存中获取文件信息,而不是再次读取!
既然以上方法会将文件信息缓存,那么我只要改变一下文件的输入流获取方式就行了。
改成如下方式就行了:

[java] view plaincopy
 
  1. Properties prop = new Properties();  
  2. String path = CommonUtils.class.getClassLoader().getResource("config.properties").getPath();  
  3. InputStream is = new FileInputStream(path);  
  4. prop.load(is);  

或者

[java] view plaincopy
 
  1. String dirPath = Thread.currentThread().getContextClassLoader().getResource("").getPath();//获取config.properties文件所在的父目录  
  2. File file = new File(dirPath,"config.properties");  
分享到:
评论

相关推荐

    动态加载properties

    动态加载`properties`文件是一项关键技能,特别是在大型应用程序中,它允许程序在运行时根据需要更新配置,而无需重启服务。下面我们将深入探讨动态加载`properties`的相关知识点。 1. **什么是.properties文件?**...

    Configuration对properties、xml配置文件的【增删改查】及动态加载

    在`configurationDemo`文件中,可能包含了一个简单的Java应用,该应用展示了如何使用Apache Commons Configuration库进行配置文件的【增删改查】操作以及动态加载。通过运行这个案例,我们可以更直观地理解这些功能...

    Spring动态加载配置文件

    在Spring框架中,动态加载配置文件是一项重要的功能,它允许我们在程序运行时改变或更新配置,而无需重启应用。这在开发和生产环境中都具有很高的实用价值,尤其是在配置需要频繁调整或者希望实现热更新的场景下。...

    java加载属性配置文件(properties文件)——从入门到进阶

    什么是properties文件为什么要使用properties文件使用java加载properties文件的两种方式使用类的加载器获得输入流加载文件getResourceAsStream()介绍使用文件输入流加载文件实现动态加载properties文件,不用重启的...

    动态加载属性文件与SpringQuartz的应用

    在IT行业中,动态加载属性文件和Spring Quartz的整合应用是一个重要的技术话题,特别是在构建大型、分布式和可扩展的系统时。下面将详细讲解这两个概念及其相互间的应用。 首先,我们来了解一下动态加载属性文件。...

    IntelliJ IDEA修改了mybatis mapper xml后不用重启tomcat,自动热发布 热更新 热部署.zip

    在开发Java Web应用程序时,尤其是使用Mybatis作为持久层框架的时候,经常遇到的一个问题是:当我们在IntelliJ IDEA中修改了Mapper XML文件后,需要手动重启Tomcat服务器才能看到改动的效果,这无疑降低了开发效率。...

    tomcat热部署+操作文档,修改任何java后台文件也不需要重启

    热部署是指在应用程序运行时,能够动态替换或更新应用的类文件或资源文件,而无需停止或重启服务器。在传统的开发流程中,每次代码更改都需要重新构建并启动服务器,这无疑浪费了大量时间。有了热部署,开发者可以...

    java配置文件修改读取工具类,包括yml和properties类型文件

    1. 加载Properties文件:使用`Properties`类的`load()`方法,从输入流中加载配置文件。 2. 读取配置:通过调用`Properties`类的`getProperty()`方法,根据键获取值。 3. 修改配置:使用`setProperty()`方法设置新的...

    动态加载属性文件

    这篇博客文章《动态加载属性文件》探讨了如何在程序运行时动态地读取和更新这些文件,而无需重启应用。 首先,我们来理解一下什么是属性文件。在Java中,`java.util.Properties`类是用来处理属性列表的,这些属性...

    myeclipse下tomcat动态加载

    在MyEclipse中配置Tomcat进行动态加载,能够让开发者在不重启服务器的情况下实现应用的热更新,提高开发效率。下面将详细解释这一过程以及相关的技术知识点。 首先,理解"动态加载"的概念。动态加载是指在程序运行...

    eclipse修改代码后热部署(不需要重启服务

    为了解决这个问题,开发者通常寻求“热部署”解决方案,即在不重启服务器的情况下,能够实时应用代码变更。本篇文章将详细介绍如何在Eclipse中实现代码修改后的热部署。 首先,我们需要理解什么是热部署。热部署是...

    properties插件

    "properties插件"是软件开发过程中经常使用的工具,主要用于处理和管理Java应用程序中的配置属性文件。这些文件通常以.properties为扩展名,包含了程序运行时所需的配置信息,如数据库连接字符串、系统参数等。...

    Eclipse properties插件,可以用来查看properties文件

    Eclipse是一款广泛使用的Java开发集成环境,而Properties文件在Java编程中扮演着至关重要的角色,它们主要用于存储配置信息,如应用程序的设置、国际化文本等。"Eclipse properties插件"就是为了方便开发者更有效地...

    Java进程配置文件Reload

    在Java编程中,进程配置文件的重新加载是一个关键操作,特别是在动态环境或持续集成的场景下,我们需要在不重启服务的情况下更新配置并让程序立即生效。`Java进程配置文件Reload`涉及的主要知识点包括: 1. **Java...

    Myeclipse中修改类及jsp文件后不用重启tomcat的方法

    然而,需要注意的是,虽然这种方法可以提高开发效率,但在生产环境中,我们通常还是推荐完全重启服务器以确保所有更改都得到正确应用。 至于"struts2报表开发.txt"这个文件名,它可能涉及到Struts2框架的报表开发。...

    properties资源文件转换插件

    通常,在Java开发中,.properties文件用于存储应用程序的配置信息,如国际化(i18n)的文本。这些文件通常以ASCII编码,不支持直接输入中文字符,需要通过特定的编码转换才能实现中文显示。该插件的出现,极大地便利了...

    spring boot中配置mybatis热加载相关文件

    为了解决这个问题,我们可以配置MyBatis实现热加载,即在XML文件改动后无需重启应用就能自动感知并更新。本文将详细讲解如何在Spring Boot中配置MyBatis的XML资源文件实现热加载,并介绍相关文件的作用。 首先,...

    国内第二款切换字体不重启设备的方案

    之后,通过SystemProperties设置系统属性,记录下字体路径,并调用Typeface类中的setCustomFont方法来应用新的字体文件。 需要注意的是,动态更换字体并不简单地替换字体文件,还需要处理字体的兼容性和显示效果。...

    SpringBoot热部署、修改jsp后重启问题解决.rar

    通过以上步骤,你应该能够在修改JSP文件后立即看到更新的效果,而无需每次手动重启Spring Boot应用。当然,如果你使用的是JRebel等高级热部署工具,它们可能提供了更强大的功能,例如动态更新Java类和资源,但这也...

    eclipse的 PropertiesEditor

    总的来说,Eclipse PropertiesEditor插件是Java开发者处理`.properties`文件时不可或缺的工具,尤其对于需要处理中文内容的项目来说更为重要。通过正确安装和使用这个插件,可以避免因编码问题导致的诸多困扰,确保...

Global site tag (gtag.js) - Google Analytics