apache下commons有一个configeration包,对于做配置很方便,尤其是实时热配置。可以自动监测到配置文件的更改而reload配置文件。在项目中使用所以进行了一下封装。
java 代码
- public class DefaultRealTimeXMLConfiger {
-
- private static Log logger = LogFactory.getLog(DefaultRealTimeXMLConfiger.class);
-
- private String fileName;
-
- private long reloadPeriod;
-
- private XMLConfiguration config;
-
- public void init()
- {
- String filePath = GlobalConfigerImpl.getConfDir()+"/"+fileName;
- logger.debug("will config with XML file["+filePath+"]");
-
- File file = new File(filePath);
- if (!file.exists() || !file.isFile()) {
- logger.error(" can't find file[" + filePath + "]");
- throw new IllegalArgumentException("config error! can't find file[" + filePath + "]");
- }
- this.init(file);
- }
-
- public void init(File file) {
- try {
- config = new XMLConfiguration(file);
- FileChangedReloadingStrategy fs = new FileChangedReloadingStrategy();
- fs.setConfiguration(config);
-
- if(this.reloadPeriod>0)
- {
- fs.setRefreshDelay(this.reloadPeriod);
- }
- config.setReloadingStrategy(fs);
-
- } catch (ConfigurationException e) {
- logger.error("error! configer error["+file.getPath()+"]");
- logger.error(e);
- e.printStackTrace();
- }
- }
-
- public Object getProperty(String name) {
- Object s = this.config.getProperty(name);
- return s;
- }
-
- public String getString(String name) {
- Object s = this.config.getProperty(name);
- String result = null;
- if (s != null)
- result = (String) s;
-
- return result;
- }
-
- public String[] getStringArray(String name) {
- String[] target = this.config.getStringArray(name);
-
- return target;
- }
-
-
-
-
-
- public String getFileName() {
- return fileName;
- }
-
-
-
-
- public void setFileName(String fileName) {
- this.fileName = fileName;
- }
-
-
-
-
- public long getReloadPeriod() {
- return reloadPeriod;
- }
-
-
-
-
- public void setReloadPeriod(long reloadPeriod) {
- this.reloadPeriod = reloadPeriod;
- }
- }
分享到:
相关推荐
这个库使得在运行时对配置进行【增删改查】操作变得简单,同时支持动态加载,从而实现配置的实时更新。 一、Apache Commons Configuration库介绍 Apache Commons Configuration库是Apache软件基金会的一个项目,...
通过合理的配置,开发者可以轻松地实现配置文件的动态加载,提高应用的灵活性和可维护性。对于那些需要频繁调整配置参数或希望实现热更新的项目,这是一个非常实用的工具。同时,由于其良好的源码可读性和丰富的功能...
### Apache实现WebLogic集群配置详解 #### 一、概述 在现代互联网应用中,为了提高系统的可用性、可伸缩性和负载均衡能力,通常会采用集群技术。本篇文章将详细介绍如何利用Apache作为前端代理服务器来实现WebLogic...
Apache作为一款广泛使用的开源Web服务器软件,以其稳定性、可靠性和强大的功能而著称;而Tomcat则是一款流行的Java Servlet容器,常用于部署Java Web应用程序。通过合理配置这两款软件,我们可以实现Web应用的高效...
- 通过“开始”菜单中的“Apache HTTP Server 2.0.55”>“Configure Apache Server”>“Edit the Apache httpd.conf Configuration file”来打开Apache配置文件。 2. **使用记事本编辑配置文件** - 记事本提供了...
Apache的配置主要集中在`httpd.conf`文件中,这是Apache的主要配置文件,控制着Apache的所有行为。以下是对Apache配置的一些关键点: 1. **DocumentRoot**: 这个指令用于指定网站的根目录。通过`ctrl+f`搜索`...
配置完成后,别忘了通过Apache的`Test Configuration`工具检查配置的正确性。如果一切顺利,Apache和Tomcat就可以协同工作,实现静态内容和动态内容的有效分离,提高网站的整体性能。 总的来说,Apache2.2与Tomcat...
MySQL安装完毕后,会启动配置向导,这里推荐选择Standard Configuration,设置MySQL服务名,同时勾选“Include binDirectory in Windows PATH”,以便在命令行直接使用MySQL工具。 【MySQL 配置】 配置过程中,你...
Apache Commons Configuration 是一个Java库,专门用于处理配置文件和提供灵活的访问机制。这个库的主要目标是简化在Java应用程序中管理配置参数的过程。在给定的"commons-configuration-1.10"版本中,我们可以深入...
在本文中,我们将深入探讨Apache Shiro的基础配置和代码实现,以帮助你理解如何有效地使用Shiro进行权限控制。 **1. Shiro架构组件** Shiro的核心组件包括:Subject、Realms、Caches、Session Manager、...
通过上述步骤,可以实现 Apache+PHP+MySQL+phpMyAdmin 的集成配置。这一配置为 Web 开发提供了一个稳定且功能丰富的平台。需要注意的是,随着技术的发展,所使用的版本可能会有所不同,但基本的安装和配置流程是类似...
Apache Ignite是一款开源的内存数据网格系统,它提供了一个分布式内存计算平台,支持数据库缓存、实时分析以及复杂事件处理等功能。在MyBatis中,二级缓存是提高数据库访问性能的重要手段,它可以将SQL查询结果存储...
ApacheDS的核心特点之一是可以使用不同的协议公开目录服务,这意味着应用程序可以将数据(包括运行时的Java对象)存储在ApacheDS中,并允许不同类型的客户端使用不同的协议来访问这些数据。 #### 二、ApacheDS与...
### Apache的httpd.conf文件配置详解 #### 一、引言 `httpd.conf`是Apache Web服务器的核心配置文件,它决定了服务器的行为、性能及功能。对于系统管理员来说,掌握...希望本文能帮助您更好地理解和使用Apache的配置。
### 使用Java与Apache Hadoop实现大规模数据处理 #### 一、引言 在大数据时代,高效处理海量数据已成为企业和组织的重要需求之一。Apache Hadoop是一个能够处理大量数据的开源软件框架,它支持分布式数据存储和...
- **编辑配置文件**:通过“开始”菜单中的“Apache HTTP Server 2.0.55” -> “Configure Apache Server” -> “Edit the Apache httpd.conf Configuration file”打开配置文件进行编辑。 - **配置项调整**: - ...
本文将围绕“common-configuration”的一些应用展开,探讨如何使用和理解这些常见的配置文件格式,以及它们在实际开发中的作用。 首先,`config.ini`是一种基于文本的配置文件,通常用于存储应用程序的设置。它采用...