讀取文件參數配置工具類ConfigUtil

 靜態注入文件方法:

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 加載配置文件config_params.properties
 * 
 * @author leopard
 */
public class ConfigUtil {

    private static final Logger logger = LoggerFactory.getLogger(ConfigUtil.class);

    private static Properties props;
    static {
        loadProps();
    }

    /**
     * 加載配置文件
     * 
     * @author leopard
     */
    synchronized static private void loadProps() {
        logger.info("開始加載config_params.properties文件內容.......");
        props = new Properties();
        InputStream in = null;
        try {
            // <!--第一種,通過類加載器進行獲取properties文件流-->
            in = ConfigUtil.class.getClassLoader().getResourceAsStream("config_params.properties");
            // <!--第二種,通過類進行獲取properties文件流-->
            // in = ConfigUtil.class.getResourceAsStream("/jdbc.properties");
            props.load(in);
        } catch (FileNotFoundException e) {
            logger.error("config_util.properties文件未找到");
        } catch (IOException e) {
            logger.error("出現IOException");
        } finally {
            try {
                if (null != in) {
                    in.close();
                }
            } catch (IOException e) {
                logger.error("config_util.properties文件流關閉出現異常");
            }
        }
        logger.info("加載properties文件內容完成...........");
        logger.info("properties文件內容:" + props);
    }

    /**
     * 獲取參數值
     * 
     * @param key
     *            鍵名
     * @return
     */
    public static String getProperty(String key) {
        if (null == props) {
            loadProps();
        }
        return props.getProperty(key);
    }

    /**
     * 獲取參數值(不存在獲取自定義默認值)
     * 
     * @param key
     *            鍵名
     * @param defaultValue
     *            自定義默認值
     * @return
     */
    public static String getProperty(String key, String defaultValue) {
        if (null == props) {
            loadProps();
        }
        return props.getProperty(key, defaultValue);
    }

    /**
     * 重新設置保存參數
     * 
     * @param key
     *            鍵名
     * @param Value
     *            鍵值
     * @return
     */
    public static Object setProperty(String key, String Value) {
        if (null == props) {
            loadProps();
        }
        return props.setProperty(key, Value);
    }
    
    public static void main(String[] args) {
        String str = ConfigUtil.getProperty("name");
        System.out.println(str);
    }

}

動態文件注入:

@Service
public class ConfigUtil {


	@Value("config_params.properties")
	private ClassPathResource resource;

	private static final Logger logger = LoggerFactory.getLogger(ConfigUtil .class);

	@PostConstruct
	public void init() {
		Properties properties = null;
		try {
			InputStream in = resource.getInputStream();
			properties = new Properties();
			properties.load(in);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

    ....下同。。。。
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章