1. 程式人生 > >java中如何使用application.property檔案裡面的值

java中如何使用application.property檔案裡面的值

自定義工具類PropertyUtil,並在該類的static靜態程式碼塊中讀取properties檔案內容儲存在static屬性中以供別的程式使用

package com.hafiz.www.util;

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

import java.io.*;
import java.util.Properties;

/**
 * Desc:properties檔案獲取工具類
 * Created by hafiz.zhang on 2016/9/15.
 */
public class PropertyUtil {
    private static final Logger logger = LoggerFactory.getLogger(PropertyUtil.class);
    private static Properties props;
    static{
        loadProps();
    }

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

    public static String getProperty(String key){
        if(null == props) {
            loadProps();
        }
        return props.getProperty(key);
    }

    public static String getProperty(String key, String defaultValue) {
        if(null == props) {
            loadProps();
        }
        return props.getProperty(key, defaultValue);
    }
}

說明:這樣的話,在該類被載入的時候,它就會自動讀取指定位置的配置檔案內容並儲存到靜態屬性中,高效且方便,一次載入,可多次使用。