All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yqjr.framework.component.config.file.FileConfig Maven / Gradle / Ivy

/**
 * 
 */
package com.yqjr.framework.component.config.file;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import com.yqjr.framework.component.config.Configuration;
import com.yqjr.framework.component.log.Logger;
import com.yqjr.framework.component.watcher.FileWatcher;
import com.yqjr.framework.utils.FileUtils;

/**
 * ClassName: FileConfigLoader 
* Description: property文件配置加载组件
* Create By: admin
* Create Date: 2017年4月17日 下午3:54:08
* Modified By:
* Modified Date:
* Modified Content:
* Version: 1.0
*/ public class FileConfig extends Configuration { private static FileConfig instance = null; private static final String PROPERTY_NAME = "applications.properties"; private Logger logger = Logger.getLogger(); private String configPath = null; /** * Description: 获取实例
* Create By: admin
* Create Data: 2017年4月17日 下午3:57:47 * * @return FileConfig */ public static FileConfig getInstance() { if (instance == null) { synchronized (FileConfig.class) { if (instance == null) { instance = new FileConfig(); } } } return instance; } /** * 初始化FileConfigLoader */ private FileConfig() { // 获取用户配置文件路径 this.configPath = FileUtils.getFilePath(PROPERTY_NAME); FileWatcher watcher = new FileWatcher("配置文件监听者", PROPERTY_NAME) { @Override protected void doOnChange() { // 初始化配置信息 init(); } }; // 初始化配置信息 long lastModified = init(); watcher.setLastModified(lastModified); watcher.start(); } protected long init() { Properties properties = new Properties(); File file = new File(this.configPath); InputStream in = null; try { in = new FileInputStream(file); properties.load(in); } catch (Exception e) { logger.error("配置文件读取异常", e); } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } // 装载配置信息 for (Object property : properties.keySet()) { String key = (String) property; setProperties(key, properties.getProperty(key)); } return file.lastModified(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy