`

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

 
阅读更多

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

由于这个类主要读取的是数据库配置,因此类名为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文档再慢慢完善这个类。

分享到:
评论

相关推荐

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

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

    服务器统一管理规定.doc

    处罚管理 管理工程部系统管理人员有以下情形之一,将处于纪律处分,通报批评并季度考 评为需改进,严重者调离工作岗位。 系统管理员没有按规定进行系统的配置、变更、性能监控。 系统管理员有以下情形之一,将处...

    howsun-javaee-framework:这是一款特别适用于中小企业应用的JavaEE快速开发框架。它是居于Spring容器之上,封装了DAO(含Hibernate和MongoDB)操作、多模块统一管理、统一配置管理、统一日志管理等优雅的工程管理开发模型,并提供大量工具包、Json操作、分页辅助工具

    3、统一配置管理,配置文件不随工程一起发布,可以有效地避免线上线下配置文件混乱问 4、统一日志管理,不需要做太多的日志配置,自动生成日志配置模板,并将日志记录到指定的文件夹中 5、封装了Redis客户端,取代...

    基于SpringBoot+Vue前后端分离的毕业设计选题管理系统源码+数据库.zip

    配置文件中的相关信息记得要写好,例如:邮箱,数据库密码之类的。前台:终端执行命令:npm installnpm run serve然后就可以启动前台vue工程基于SpringBoot+Vue前后端分离的毕业设计选题管理系统基于SpringBoot+Vue...

    网管教程 从入门到精通软件篇.txt

    Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 ...

    软件工程知识点

    其主要内容包括:程序、配置文件、系统 文档、用户文档等。 2.软件分类 (1)按功能划分:系统软件、支撑软件、应用软件。 (2)按工作方式划分:实时处理软件、分时处理软件、交互式软件、批处理软件。 (3)按...

    WINDOWS 内部原理(十)驱动和硬件的管理

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

    HaivOra4J2ee工具提供图片

     本工具主要提供了以下功能:  1、能通过表名、列名、列类型、表和列的注释等信息,自动生成PO类、Hibernate、VO类、struts+spring+hibernate的配置文件、Jsp文件、使用说明等文档,以实现对单表的增、删、...

    windows 内部原理(一)

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

    WINDOWS 内部原理 (八)

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

    haivDb4J2ee1.3

     1、能通过表名、列名、列类型、表和列的注释等信息,自动生成PO类、Hibernate、VO类、struts+spring+hibernate的配置文件、Jsp文件、使用说明等文档,以实现对单表的增、删、改、查的操作。生成的代码非常规范,...

    WINDOWS 内部原理(九)

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

    WINDOWS 内部原理 (三)

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

    WINDOWS 内部原理(四)

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

    WINDOWS 内部原理(五)

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

    EditPlus 2整理信箱的工具

    (技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。 直接在"查找"中输入正则表达式“^[ \t]*\n”,注意\t前有...

    皮肤控件研究文档,破解后的库文件,皮肤设计工具使用教程

    2 软件界面的解决方案之一:使用皮肤组件 皮肤组件能完全自动的为您的应用程序添加支持换肤功能,甚至不需要更改您的设计好的Form以及添加一行代码!您 也不再需要花费很多时间来使得自己的应用程序更漂亮。 3 ...

    软件工程-理论与实践(许家珆)习题答案

    对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前的发展是软件家族法 ,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性, 并进行关于变化的推理...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...

Global site tag (gtag.js) - Google Analytics