`
catastiger
  • 浏览: 138506 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

properties文件自动重载

    博客分类:
  • JAVA
 
阅读更多
Properties 文件是配置程序的一种常用作法. Commons Configuration当然支持这种格式并且增强java.util.Properties 这个类 这一节就是介绍PropertiesConfiguration 类的一些特性。
Loading 加载
At 首先,假设有个应用程序的所有配置信息都在一个叫“usergui.properties ”的properties 文件里,文件的内容如下:
# Properties definining the GUI
colors.background = #FFFFFF
要加载这个文件,你可以像下面这样写:
Configuration config = new PropertiesConfiguration("usergui.properties");
If 如果你可以使用文件的绝对路径,那么这个文件会自动在下面几个地方被搜寻:
当前目录
用户主目录
classpath

Includes 包含文件
If a 如果property文件里有叫做 "include"的键值对,并且值是一个 property文件名, 这么个文件也将被自动包含进配置信息中,举例如下:
# usergui.properties

include = colors.properties
include = sizes.properties
# colors.properties

colors.background = #FFFFFF
Automatic Reloading 自动重新加载
A common issue with properties file is to handle the reloading of the file when it changes. 通常你需要开启一个线程来监视配置文件的时间,并在文件被修改后重新加载进来。 Commons Configuration集成了这个加载机制, 如果需要使用自动加载,只需要在年id配置信息里声明一个自动重载策略:
PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties");
config.setReloadingStrategy(new FileChangedReloadingStrategy());
现在你随时手动修改了usergui.properties, 配置信息都能够自动刷新,修改后的值立即在程序里生效。
Saving 保存
调用save()方法就可以保存你的配置:
PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties");
config.setProperty("colors.background", "#000000);
config.save();
你也可以复制一份配置保存到另外一个文件:
PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties");
config.setProperty("colors.background", "#000000);
config.save("usergui.backup.properties);
如果你不想在配置信息改变之后费心的手动保存文件,你可以激活自动保存模式::
PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties");
config.setAutoSave(true);
config.setProperty("colors.background", "#000000); // the configuration is saved after this call
Lists and arrays
Commons Configuration 可以很轻松的返回一组值, 例如你的文件包含了用逗号分割的一组数据:
# chart colors
colors.pie = #FF0000, #00FF00, #0000FF
你不用手动拆分字符串,可以直接作为数组返回:
String[] colors = config.getStringArray("colors.pie");
另外一种作法, 你可以通过多行的同名键值对,来返回一组值。
# chart colors
colors.pie = #FF0000;
colors.pie = #00FF00;
colors.pie = #0000FF;
变量窜改
如果你熟悉Ant或者Maven,你肯定已经用到 (像 ${token})这样可以在配置文件被加载时自动扩充的变量。 Commons Configuration 也支持这样的特性, 下面是个示例:
application.name = Killer App
application.version = 1.6.2

application.title = ${application.name} ${application.version}
特殊字符
如果你需要用到一些特殊字符,比如换行符,制表符,或者unicode字符,你需要进行字符转义,字符串分隔符(默认的是逗号“,”)也需要被转义  :
key = This \n string \t contains \, escaped \\ characters \u0020
分享到:
评论

相关推荐

    struts.properties配置详解

    #### struts.properties文件的作用 `struts.properties`文件通常位于项目的`WEB-INF/classes`目录下,这样可以确保它被包含在类路径(CLASSPATH)中,以便Struts2能够正确加载并解析其中的配置信息。 ### 核心配置...

    Java进程配置文件Reload

    2. **监听文件变化**:为了实现在运行时自动重载配置,我们需要监控配置文件的变更。Java中可以使用`java.nio.file.WatchService` API来监听文件系统的变化,当检测到配置文件有改动时,触发重新加载。 3. **配置...

    用JAVA 读属性文件

    在Java编程中,属性文件(通常以`.properties`为扩展名)是一种常见的数据存储格式,用于保存程序的配置信息、国际化字符串或者任何键值对数据。这些文件通常以ASCII编码,且格式简单,易于人阅读和编辑。在本篇文章...

    struts2 properties

    10. `Struts.i18n.encoding`和`Struts.i18n.reload`: 分别指定默认的字符编码和是否自动重载国际化资源,便于更新语言资源。 11. `Struts.mapper.class`、`Struts.multipar.maxSize`、`Struts.multipar.parser`和`...

    Android应用源码之webview重载使用&自定义网址.zip

    - `project.properties`文件则包含了Android项目的版本信息和依赖库设置。 综上所述,此压缩包提供的源码示例涵盖了WebView的常见使用、自定义URL加载逻辑以及可能的性能优化策略。通过学习和实践这些代码,开发者...

    Struts2属性文件详解

    指定了是否每次HTTP请求到达时,系统都重新加载资源文件(允许国际化文件重载),默认值为`false`。在开发阶段,通常会将其设置为`true`以便实时查看开发效果;而在产品发布阶段,为了提高性能,应将其设置为`false`...

    SpringBoot 31道面试题和答案.docx

    YAML(YAML Ain't Markup Language)是一种数据序列化格式,它比传统的properties文件更易读,支持层级结构,更适用于复杂配置。在SpringBoot中,可以使用YAML文件(.yaml或.yml扩展名)替代.properties文件来存储...

    Spring Boot介绍内容.zip

    7. **YAML/Properties配置**:Spring Boot支持使用 YAML 或传统的 properties 文件进行配置。YAML 提供了更易读的层次化结构,而 properties 文件则更传统。 8. **Spring Boot DevTools**:开发工具模块提供了实时...

    springboot-学习资料

    热部署允许开发者在应用运行时修改代码并自动重载,提高开发效率。多环境切换则通过配置文件中的profile属性,使得应用可以根据不同的环境(如开发、测试、生产)加载不同的配置。 具体使用方面,Spring Boot与...

    Java_Spring引导教程列表.zip

    6. **YAML/Properties配置**:Spring Boot支持通过application.yml或application.properties文件进行配置。YAML格式更加易读,而Properties则更传统。 7. **数据库集成**:Spring Boot可以轻松连接到各种数据库,如...

    springboot_Demo.zip_DEMO_springboot Demo

    4. **YAML或Properties配置**:SpringBoot支持使用YAML或Properties文件进行配置。YAML格式更加易读,而Properties则是传统的Java配置方式。配置文件通常位于`src/main/resources/application.yml`或`application....

    spring-boot-1.1.3.RELEASE.tar.gz

    4. **YAML/Properties 配置**:除了传统的 properties 文件,1.1.3 版本开始支持 YAML 格式的配置文件,提供更友好的层次结构。 5. **Actuator**:提供了健康检查、审计、指标、环境信息等监控和管理功能,帮助...

    struts2国际化处理全解

    6. **处理错误和异常消息**:Struts2默认会自动从资源文件中查找错误和异常消息,只需确保在`struts.properties`中设置了正确的错误消息资源包。 在提供的压缩包`07`中,可能包含了相关的教学材料,如幻灯片和案例...

    springboot基本使用和内部原理

    6. **YAML/Properties配置**:SpringBoot支持使用YAML或Properties文件进行配置,YAML提供更友好的格式,方便人类阅读。 7. **SpringBoot应用结构**:通常,SpringBoot应用包含一个主类,它使用`@SpringBoot...

    SpringBoot-Study--master.zip

    5. **YAML/Properties配置**:SpringBoot支持使用YAML或Properties文件进行配置,YAML格式更易于阅读和编写。 6. **运行器(Runner)**:如CommandLineRunner和ApplicationRunner接口,允许在应用启动后执行自定义...

    struts2国际化 标签 页面 处理类

    这将从`messagefile_XX_XX.properties`文件中查找键。 在Action类中处理国际化: - `ActionSupport`类提供了`getText()`方法的重载版本,用于获取国际化的文本。例如,可以使用`addActionError(getText("wintys....

    Spring Boot 参考指南

    - **YAML 对比 Properties 文件**:比较 YAML 和传统 Properties 文件的优缺点。 - **类型安全的配置绑定**: - **配置类**:创建配置类来管理配置信息。 - **松散绑定**:Spring Boot 支持配置文件中的松散绑定...

    spring boot基本启动框架

    5. **YAML/Properties配置**:Spring Boot支持使用YAML或Properties文件进行配置。YAML提供了一种更易读的格式,而Properties则更传统。这些配置可以覆盖默认的自动配置。 6. **Spring Initializr**:这是一个在线...

Global site tag (gtag.js) - Google Analytics