`

JAVA Servlet 动态加载配置文件.properties

    博客分类:
  • Java
 
阅读更多

JAVA Servlet 可以定义.properties文件对程序进行定义参数,一般为加载Servlet时读取,修改.properties后需要在tomcat里重新加载一 次Servlet以重新读取参数。但有些程序必须一直运行,如充值管理系统,就需要不重新加载Servlet的情况下,进行动态加载配置文 件.properties。
问题:
当我们使用如下语句加载.properties时:
ClassLoader classLoader = this.getClass().getClassLoader();

Properties prop = new Properties();

prop.load(classLoader.getResourceAsStream("/Application.properties"));
会发现修改了.properties后,即使重新执行,读入的仍为修改前的参数。
此问题的原因在于ClassLoader.getResourceAsStream读入后,会将.properties保存在缓存中,重新执行时会从缓存中读取,而不是再次读取.properties文件。
转:http://longfor5.iteye.com/blog/1756077
解决:
Properties prop = new Properties();

InputStream is = new FileInputStream(绝对路径);

prop.load(is);
此时,FileInputStream不会将.properties保存在缓存中,即可以解决此问题。但另外让人困惑的 一个问题会产生,即绝对路径,会导致程序的通用性不好。这个问题是由于ClassLoader.getResourceAsStream是直接寻找 classes下的文件,FileInputStream则需要用完整的绝对路径。
完美解决:
Properties prop = new Properties();

String path = Thread.currentThread().getContextClassLoader().getResource("").getPath();

InputStream is = new FileInputStream(path + "/VoucherManagement.properties");
此时已无需给出.properties绝对路径,实现动态加载。


原文出处:http://www.blogardener.com/?p=448
分享到:
评论

相关推荐

    项目配置文件( spring-mvc.xml spring-mybatis.xml web.xml log4j.properties)

    这里提到的四个关键配置文件——`spring-mvc.xml`、`spring-mybatis.xml`、`web.xml`以及`log4j.properties`,对于一个基于Java的Web应用来说至关重要,特别是使用Spring MVC和MyBatis框架的时候。接下来,我们将...

    Java加载properties文件的六种方法

    在Java编程中,读取和处理`.properties`文件是常见的任务,这些文件通常用于存储配置...理解并掌握这些方法,可以灵活地在不同的项目环境中加载和使用配置文件。在实际开发中,应根据项目需求选择最合适的加载方式。

    JAVA操作properties文件.pdf

    通过上述内容,我们了解了Java中`Properties`类的基本操作,如何通过不同的方式加载`.properties`文件,以及如何在Java Web应用中使用这些配置文件。这些操作在开发过程中非常实用,可以简化配置管理,提高代码的可...

    struts.properties详解

    - **作用**:此属性用于指定加载Struts2配置文件的配置文件管理器。 - **默认值**:`org.apache.struts2.config.DefaultConfiguration`,这是Struts2默认使用的配置文件管理器。 - **自定义**:如果需要实现自定义的...

    java 读properties 文件六种方法

    在Java编程语言中,处理配置文件是常见的需求之一,尤其是当需要从外部文件读取配置信息时。Properties文件因其灵活性和易读性而被广泛应用于各种场景,如数据库连接、系统配置参数等。本文将详细介绍Java中读取...

    Java读取Properties文件的六种方法

    正确且高效地读取这些配置文件对于程序运行至关重要。本文将详细介绍六种不同的方法来读取 `Properties` 文件,并提供相应的示例代码。 #### 一、使用 `java.util.Properties` 类的 `load()` 方法 这是最常用的...

    java文件的加载

    在Java应用开发中,特别是Web应用程序的构建过程中,资源文件(如配置文件、属性文件等)的加载是必不可少的一部分。本文将重点探讨Java环境下不同方式下的文件加载方法,尤其关注在Spring框架下的实践与应用。 ###...

    java类文件通过$获取properties文件的属性值

    1. **配置文件加载**:确保`site.properties`文件被正确加载到Spring容器中。这通常可以通过在`applicationContext.xml`或者`application.properties`中指定配置文件的位置来实现。 ```xml ...

    使用J2SE API读取Properties文件的六种方法

    在Java开发中,配置文件通常是用来存储应用的配置参数或者环境设置,而Properties文件是最常见的配置文件格式。本文将详细讲解使用J2SE API来读取Properties文件的六种方法。 1. **使用java.util.Properties类的...

    Druid jar包和配置文件.rar

    - 在Java代码中通过`com.alibaba.druid.pool.DruidDataSource`类实例化数据源,加载配置文件。 - Spring框架中,可以通过XML或Java配置方式集成Druid,例如在Spring的配置文件中定义一个`bean`来初始化`Druid...

    struts.properties文件详解

    Struts.properties 文件是 Struts2 框架的核心配置文件之一,它定义了框架的行为和各种默认设置。这个文件主要用于定制 Struts2 的工作环境,包括配置管理器、国际化、对象工厂、文件上传、请求映射等多个方面。下面...

    Servlet技术.pdf

    3. **配置Servlet**:在Web应用的配置文件`web.xml`中注册Servlet,包括定义Servlet的名称、类名以及URL映射。例如: ```xml <servlet> <servlet-name>Hello</servlet-name> <servlet-class>j5_01</servlet-...

    SpringBoot-2.7.6读取配置文件的方式

    Spring Boot支持多种类型的配置文件,包括`application.properties`和`application.yml`。默认情况下,它会在以下位置查找这些文件: 1. `src/main/resources/config/` 2. `src/main/resources/` 启动应用时,...

    log4j与web.xml的配置

    2. **Log4j配置文件(log4j.properties或log4j.xml)** - 在Java项目中,通常会有一个log4j配置文件,用于定义日志记录的级别、输出方式和格式。 - 示例配置: ``` log4j.rootLogger=DEBUG, FILE log4j....

    详解struts2中struts.properties.doc

    在Struts2中,配置文件起着至关重要的作用,其中`struts.xml`用于管理Action映射和Result定义,而`struts.properties`文件则用于定义框架的全局属性。这个文件是基于Properties格式的,存储了一系列键值对,用于定制...

    log4j配置.txt

    上述配置指定了Log4j的配置文件路径,使得Servlet在启动时自动加载该配置文件。 #### 五、总结 通过以上介绍可以看出,Log4j不仅功能强大,而且非常灵活,可以根据不同应用场景选择合适的配置方式。无论是简单的...

    API读取Properties文件的六种方法

    这种方式适用于大多数场景,尤其是当配置文件存储在本地时。 ```java import java.io.FileInputStream; import java.io.InputStream; import java.util.Properties; public class PropertiesExample { public ...

    ResourceBundle与Properties读取maven中resources目录下的资源文件

    `Properties`类是Java提供的用于处理配置文件的一个工具类。它继承自`Hashtable`类,并实现了`Map`接口,因此可以看作是一种特殊的`Map`,用来存储键值对。不同之处在于,`Properties`类中的键和值都必须是`String`...

    log4j(二):动态配置日志输出路径

    然而,如果要在运行时动态更改日志路径,我们需要利用Log4j的API或者通过重新加载配置文件来实现。例如,在Java代码中,可以使用`PropertyConfigurator.reconfigure()`方法重新加载.properties文件,或者直接通过`...

    Java实现的properties文件动态修改并自动保存工具类

    Java实现的properties文件动态修改并自动保存工具类是指通过Java语言编写的工具类,该工具类可以实现对properties配置文件的动态修改和自动保存功能。下面是该工具类的详细介绍: 一、概述 Apache Common-...

Global site tag (gtag.js) - Google Analytics