通過靜態程式碼塊讀取配置檔案配置靜態屬性
阿新 • • 發佈:2019-01-07
在專案開發中,通常會將一些經常變動的配置提取出來,做成一個配置類,通過該類的靜態屬性來引用配置。而在專案上線的時候,為了方便後期運維,將配置寫在程式碼裡面的方式是肯定不行的了,這時需要將配置資訊提取出來,放到配置檔案中。下面是一種採用靜態程式碼塊配置靜態變數的方法。
java配置類,通過靜態變數記錄各種屬性,在工程的其他方可以很方便的引用,可以根據配置檔案裡面配置的屬性重新設定靜態屬性,如果沒有配置檔案則使用程式碼裡面的預設值。
Config .java
package com.utils;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;
public class Config {
/**是否除錯模式*/
public static boolean isDebug=false;
/**登陸超時時間*/
public static long activeTime=5000L;
/**日誌路徑**/
public static String log_path="/default_log/";
static{
Properties pro = new Properties();
InputStreamReader in=null ;
try {
in=new InputStreamReader(Config.class.getResourceAsStream("/config.properties"),"utf-8");
pro.load(in);
isDebug=Boolean.parseBoolean(pro.getProperty("isDebug"));
activeTime=Long.parseLong(pro.getProperty("activeTime"));
log_path=pro.getProperty("log_path" );
System.out.println("配置檔案讀取成功:\n{isDebug:"+isDebug+",activeTime:"+activeTime+",log_path:"+log_path);
} catch (FileNotFoundException e) {
System.out.println("找不到配置檔案");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(in!=null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String []ss){
System.out.println("開始業務處理!");
}
}
配置檔案,放在專案根路勁下即可
config.properties
isDebug=true
activeTime=20000
log_path=/日誌路徑/log
執行main方法,可以看到在方法執行之前,各靜態屬性已經根據配置config.properties中的值進行了賦值,以下是測試輸出結果。
配置檔案讀取成功:
{isDebug:true,activeTime:20000,log_path:/日誌路徑/log
開始業務處理!