`
steven_cheng
  • 浏览: 28077 次
  • 来自: 北京
社区版块
存档分类
最新评论

用apache的configuration实现实时配置

    博客分类:
  • java
阅读更多
apache下commons有一个configeration包,对于做配置很方便,尤其是实时热配置。可以自动监测到配置文件的更改而reload配置文件。在项目中使用所以进行了一下封装。

java 代码
  1. public class DefaultRealTimeXMLConfiger {   
  2.        
  3.     private static Log logger = LogFactory.getLog(DefaultRealTimeXMLConfiger.class);   
  4.        
  5.     private String fileName;   
  6.        
  7.     private long reloadPeriod;   
  8.        
  9.     private XMLConfiguration config;   
  10.        
  11.     public void init()   
  12.     {   
  13.         String filePath = GlobalConfigerImpl.getConfDir()+"/"+fileName;   
  14.         logger.debug("will config with XML file["+filePath+"]");   
  15.            
  16.         File file = new File(filePath);   
  17.         if (!file.exists() || !file.isFile()) {   
  18.             logger.error(" can't find file[" + filePath + "]");   
  19.             throw new IllegalArgumentException("config error! can't find file[" + filePath + "]");   
  20.         }   
  21.         this.init(file);   
  22.     }   
  23.        
  24.     public void init(File file) {   
  25.         try {   
  26.             config = new XMLConfiguration(file);   
  27.             FileChangedReloadingStrategy fs = new FileChangedReloadingStrategy();   
  28.             fs.setConfiguration(config);   
  29.                
  30.             if(this.reloadPeriod>0)   
  31.             {   
  32.                 fs.setRefreshDelay(this.reloadPeriod);   
  33.             }   
  34.             config.setReloadingStrategy(fs);   
  35.                
  36.         } catch (ConfigurationException e) {   
  37.             logger.error("error! configer error["+file.getPath()+"]");   
  38.             logger.error(e);   
  39.             e.printStackTrace();   
  40.         }   
  41.     }   
  42.   
  43.     public Object getProperty(String name) {   
  44.         Object s = this.config.getProperty(name);   
  45.         return s;   
  46.     }   
  47.   
  48.     public String getString(String name) {   
  49.         Object s = this.config.getProperty(name);   
  50.         String result = null;   
  51.         if (s != null)   
  52.             result = (String) s;   
  53.   
  54.         return result;   
  55.     }   
  56.   
  57.     public String[] getStringArray(String name) {   
  58.         String[] target = this.config.getStringArray(name);   
  59.            
  60.         return target;   
  61.     }   
  62.        
  63.   
  64.     /**  
  65.      * @return Returns the fileName.  
  66.      */  
  67.     public String getFileName() {   
  68.         return fileName;   
  69.     }   
  70.   
  71.     /**  
  72.      * @param fileName The fileName to set.  
  73.      */  
  74.     public void setFileName(String fileName) {   
  75.         this.fileName = fileName;   
  76.     }   
  77.   
  78.     /**  
  79.      * @return Returns the reloadPeriod.  
  80.      */  
  81.     public long getReloadPeriod() {   
  82.         return reloadPeriod;   
  83.     }   
  84.   
  85.     /**  
  86.      * @param reloadPeriod The reloadPeriod to set.  
  87.      */  
  88.     public void setReloadPeriod(long reloadPeriod) {   
  89.         this.reloadPeriod = reloadPeriod;   
  90.     }   
  91. }  
分享到:
评论

相关推荐

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

    这个库使得在运行时对配置进行【增删改查】操作变得简单,同时支持动态加载,从而实现配置的实时更新。 一、Apache Commons Configuration库介绍 Apache Commons Configuration库是Apache软件基金会的一个项目,...

    Apache的Commons-configuration自动加载特性

    通过合理的配置,开发者可以轻松地实现配置文件的动态加载,提高应用的灵活性和可维护性。对于那些需要频繁调整配置参数或希望实现热更新的项目,这是一个非常实用的工具。同时,由于其良好的源码可读性和丰富的功能...

    Apache实现weblogic集群配置

    ### Apache实现WebLogic集群配置详解 #### 一、概述 在现代互联网应用中,为了提高系统的可用性、可伸缩性和负载均衡能力,通常会采用集群技术。本篇文章将详细介绍如何利用Apache作为前端代理服务器来实现WebLogic...

    Apache与Tomcat整合配置.pdf

    Apache作为一款广泛使用的开源Web服务器软件,以其稳定性、可靠性和强大的功能而著称;而Tomcat则是一款流行的Java Servlet容器,常用于部署Java Web应用程序。通过合理配置这两款软件,我们可以实现Web应用的高效...

    apache+php配置

    Apache的配置主要集中在`httpd.conf`文件中,这是Apache的主要配置文件,控制着Apache的所有行为。以下是对Apache配置的一些关键点: 1. **DocumentRoot**: 这个指令用于指定网站的根目录。通过`ctrl+f`搜索`...

    Apache2.2+Tomcat5.5整合配置教程

    配置完成后,别忘了通过Apache的`Test Configuration`工具检查配置的正确性。如果一切顺利,Apache和Tomcat就可以协同工作,实现静态内容和动态内容的有效分离,提高网站的整体性能。 总的来说,Apache2.2与Tomcat...

    Apache+MySQL+PHP 配置过程

    MySQL安装完毕后,会启动配置向导,这里推荐选择Standard Configuration,设置MySQL服务名,同时勾选“Include binDirectory in Windows PATH”,以便在命令行直接使用MySQL工具。 【MySQL 配置】 配置过程中,你...

    Apache shiro权限控制基础配置代码

    在本文中,我们将深入探讨Apache Shiro的基础配置和代码实现,以帮助你理解如何有效地使用Shiro进行权限控制。 **1. Shiro架构组件** Shiro的核心组件包括:Subject、Realms、Caches、Session Manager、...

    官方commons-configuration-1.10的jar包

    Apache Commons Configuration 是一个Java库,专门用于处理配置文件和提供灵活的访问机制。这个库的主要目标是简化在Java应用程序中管理配置参数的过程。在给定的"commons-configuration-1.10"版本中,我们可以深入...

    Apache+PHP+MySQL+phpMyAdmin详细配置

    通过上述步骤,可以实现 Apache+PHP+MySQL+phpMyAdmin 的集成配置。这一配置为 Web 开发提供了一个稳定且功能丰富的平台。需要注意的是,随着技术的发展,所使用的版本可能会有所不同,但基本的安装和配置流程是类似...

    apache ignite实现mybatis二级缓存所需要的jar包

    Apache Ignite是一款开源的内存数据网格系统,它提供了一个分布式内存计算平台,支持数据库缓存、实时分析以及复杂事件处理等功能。在MyBatis中,二级缓存是提高数据库访问性能的重要手段,它可以将SQL查询结果存储...

    Apache的httpd.conf文件配置

    ### Apache的httpd.conf文件配置详解 #### 一、引言 `httpd.conf`是Apache Web服务器的核心配置文件,它决定了服务器的行为、性能及功能。对于系统管理员来说,掌握...希望本文能帮助您更好地理解和使用Apache的配置。

    JAVA使用Apache Hadoop实现大规模数据处理.txt

    ### 使用Java与Apache Hadoop实现大规模数据处理 #### 一、引言 在大数据时代,高效处理海量数据已成为企业和组织的重要需求之一。Apache Hadoop是一个能够处理大量数据的开源软件框架,它支持分布式数据存储和...

    Apache 服务器使用指南

    - **编辑配置文件**:通过“开始”菜单中的“Apache HTTP Server 2.0.55” -> “Configure Apache Server” -> “Edit the Apache httpd.conf Configuration file”打开配置文件进行编辑。 - **配置项调整**: - ...

    common-configuration的一些应用

    本文将围绕“common-configuration”的一些应用展开,探讨如何使用和理解这些常见的配置文件格式,以及它们在实际开发中的作用。 首先,`config.ini`是一种基于文本的配置文件,通常用于存储应用程序的设置。它采用...

Global site tag (gtag.js) - Google Analytics