`

工程管理之一:配置文件工具类

 
阅读更多

在各个项目中,总会用到各种数据库连接或连接池等基础信息。如果使用常量写在程序里,恐怕不利于修改配置和部署。这里总结一个在工作中常用的配置文件的工具类。

由于这个类主要读取的是数据库配置,因此类名为DatabaseProject,当然读取不同配置也可以使用其他类名。

public final class DatabaseProject {

	public static final Logger LOGGER = LoggerFactory.getLogger(DatabaseProject.class);
	
	//You must call init() before really use DB.
	public static CompositeConfiguration DB_CONFIG = new CompositeConfiguration();
	
	public static void init(String confDir)
	{
		DB_CONFIG = getConfiguration(confDir,"db.properties");
	}
	
	public static CompositeConfiguration getConfiguration(String confDir,
                                                          String prop) {
        CompositeConfiguration config = new CompositeConfiguration();
        File file = new File(confDir + "/" + prop);
        FileChangedReloadingStrategy reloadingStrategy = new FileChangedReloadingStrategy();
        reloadingStrategy.setRefreshDelay(10000);// 10s
        URL url = null;
        try {
            if (file.exists()) {
                url = file.toURI().toURL();
            } else {
                url = org.apache.commons.configuration.ConfigurationUtils
                        .locate(prop);
            }
            LOGGER.info("loading conf from:" + url);
            PropertiesConfiguration fileConfiguraton = new PropertiesConfiguration();
            fileConfiguraton.load(url);
            fileConfiguraton.setReloadingStrategy(reloadingStrategy);
            config.addConfiguration(fileConfiguraton);
        } catch (Exception e) {
            LOGGER.error("Failed to load config:" + prop, e);
        }
        return config;
    }

	public static void main(String[] args){
		DatabaseProject.init("src");
	}
}

这个类中主要使用了apache的commons-configuration包,日志使用slf4j、logback等jar包。

主要方法是getConfiguration,获取properties文件配置路径和文件名,并启用FileChangedReloadingStrategy文件修改后重新加载策略,返回CompositeConfiguration实例。

使用方法:

DatabaseProject.init("src");//初始化传入配置文件路径
//
DatabaseProject.DB_CONFIG.containsKey("mongodb.ips")
DatabaseProject.DB_CONFIG.getString("mongodb.ip");
DatabaseProject.DB_CONFIG.getInt("mongodb.port");

 以上就是这个工具类简单的使用介绍,commons-configuration包还提供了有不少工具,大家后续可以查看API文档再慢慢完善这个类。

分享到:
评论

相关推荐

    Spring自定义配置文件便签[Maven]工程可运行

    首先,Spring框架的核心之一就是IoC(Inversion of Control)容器,它通过XML、Java配置或注解来管理对象的生命周期和依赖关系。在传统的XML配置中,我们可以定义bean并设置其属性。然而,随着项目的复杂性增加,XML...

    根据表反向生成实体类与配置文件

    在IT行业中,数据库管理和对象关系映射(ORM)是核心概念之一。"根据表反向生成实体类与配置文件"这个主题涉及到将数据库中的表结构转换为编程语言中的类结构,以及生成相应的配置文件,以便于开发人员进行数据操作...

    配置好log4j的eclipse简单工程,每天输出到一个日志文件中,该文件名为:“XXX_年月日时分.log”的形式

    在IT行业中,日志记录是系统调试、性能分析和故障排查的重要工具,而Log4j则是Java编程语言中广泛使用的日志框架之一。本工程基于Eclipse IDE,配置了一个简单的Log4j设置,实现了每天自动将日志输出到一个特定命名...

    mybatis逆向工程工具

    MyBatis逆向工程工具是Java开发者在构建SSM(Spring、SpringMVC、MyBatis)项目时常用的一种高效工具。它能够帮助开发者自动生成DAO(Data Access Object)、Mapper接口以及实体类(Entity),极大地提高了开发效率...

    软件工程工具与调试

    - **软件开发支撑工具**:包括软件配置管理工具、项目管理工具、软件工程工具等。 **集成开发环境(IDE)** - IDE是将多种软件编程工具集成到一个应用程序中,提供一致的界面,并有效地协同各个工具的使用。 - **...

    Spring4 jar包和Spring配置文件

    Spring框架是Java开发中最常用的轻量级框架之一,它的核心在于IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。在本压缩包中,你将找到Spring4版本的相关jar包,这些是...

    数字变电站SCD文件解析工具

    《数字变电站SCD文件解析工具详解》 在现代电力系统中,数字变电站作为一种高效、可靠的通信方式,已经逐渐取代了传统的模拟变电站。...因此,掌握SCD文件解析工具的使用,是电力行业专业人员不可或缺的技能之一。

    网络工程师批量调试设备工具之一

    总的来说,"网络工程师批量调试设备工具之一"——Gen.exe是网络运维领域中的一个重要工具,它通过提供高度可定制的命令行参数,简化了大规模网络设备的调试和管理。对于任何处理复杂网络环境的工程师来说,熟练掌握...

    软件工程配置管理优选ppt资料.ppt

    例如,软件的源代码、二进制文件、安装程序以及各种配置文件等。标识配置项是配置管理的基础,它要求对所有需要管理的项目进行清晰的分类和定义。 配置管理的实践不仅仅局限于项目层面,组织层面上也需要配置管理来...

    mybatis逆向工程

    在Java Web开发领域,MyBatis逆向工程(MyBatis Generator,简称MBG)是这样一个工具,它能够帮助开发者自动生成基于MyBatis框架的POJO(Plain Old Java Object)、Mapper接口和XML配置文件,极大地减少了重复编码的...

    环保工程及服务行业周报:运营类资产配置价值凸显,关注危废处置及环卫服务板块.pdf

    在IT项目管理中,资金是项目成功的关键因素之一,需要通过有效的项目管理来保证项目按照预算和时间表推进。 5. 风险管理:报告中提到了政策推广不达预期,市场竞争加剧风险,项目落地不达预期等风险提示。在IT行业...

    Windows内部原理(十一):存储和文件系统

    深入研究Windows内部原理系列之一:Windows的昨天、今天和明天 讲师信息:潘爱民 2007年01月25日 14:00-15:30 Level: 300 著名技术作家、微软亚洲研究院研究员潘爱民老师将在这次课程中跟听众分享Windows的发展...

    附件1:普通类、科技类相关文件 (2).zip

    - **科技类文件**:这类文件可能包括编程代码(如.java、.py、.c++)、配置文件(.json、.xml)、数据库文件(.sql、.mdb)、科学计算软件输出(.csv、.txt)或者技术图纸(.dwg、.pdf)。它们与科学研究、工程设计...

    软件工程中的软件配置管理教程1.pptx

    ### 软件工程中的软件配置管理教程 #### 第1章 软件配置管理概述 **软件配置管理(SCM)** 是一种系统性的方法,用于管理软件开发过程中的不同版本及其相关文档。它的核心目标是确保团队成员始终使用同一版本的...

    mybatis-oracle逆向工程工具

    2. **Oracle数据库**:Oracle是世界上最流行的商业关系型数据库管理系统之一,以其高性能、高可用性和安全性著称。在开发中,Oracle数据库常用于大型企业级应用。 3. **逆向工程**:逆向工程在软件开发中是指通过...

    小超工程项目管理软件_总承包企业项目管理方案(PM).docx

    该公司秉承“真诚、务实、创新、服务”的经营理念,不仅通过了广东省信息产业厅的“双软企业”认证,而且成为了国内建设领域中备受认可的IT应用高新技术企业之一。 #### 二、EPRO工程项目管理系统的概述 《EPRO...

    c程序中扩展名的详细解释

    - 在使用BSCMAKE工具时,.SBR文件作为输入文件之一。 #### .TLB:OLE库文件 - **定义**:TLB文件是OLE类型的库文件。 - **用途**:这些文件包含了OLE自动化对象的数据类型和接口定义。 - **示例**: - 在开发需要...

    java工程打JAR包工具(挺好用的)

    Java工程打JAR包工具是Java开发者常用的工具之一,它能将Java源代码编译、打包成可执行的JAR(Java Archive)文件。JAR文件是Java平台特有的归档格式,它允许将多个类文件和其他资源组合到一个单一的文件中,便于...

Global site tag (gtag.js) - Google Analytics