首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

配置文件工具种

2012-06-30 
配置文件工具类在各个项目中,总会用到各种数据库连接或连接池等基础信息。如果使用常量写在程序里,恐怕不利

配置文件工具类

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

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

热点排行