java專案利用PropertiesUtil類配置化
阿新 • • 發佈:2019-01-30
目錄
1、實現思路
2、原始碼展示
3、呼叫例子
4、配置檔案結構
5、總結
問題:
在專案中我們可能會經常遇到下面這種情況,比如我們需要和FTP伺服器進行一個對
接,以前我們會直接把FTP伺服器地址直接在程式碼中寫死,這樣就會出現一個問題,如果一個
專案中在多處用到了這個地址,將來需要修改的話,修改起來會非常麻煩。
解決思路
我們可以把配置抽取出來的,把地址等這類資訊寫入一個配置檔案中,然後用一個類專門去
管理這個配置檔案,我稱這個類為PropertiesUtil類。
1、實現思路
1.在編譯階段讀取配置檔案 2. 對外提供根據key獲取對應的value
2、原始碼展示
package com.mywebapp.util;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;
/**
* Created by xiao
*/
public class PropertiesUtil {
private static Logger logger = LoggerFactory.getLogger(PropertiesUtil.class);
private static Properties props;
//靜態程式碼塊>>普通程式碼塊>>構造程式碼塊
static {
String fileName = "mywebapp.properties";
props = new Properties();
try {
//讀取propertiesUtil類的配置
//利用反射載入類資訊,獲取配置檔案的檔案流,並指點編碼格式
props.load(new InputStreamReader(PropertiesUtil.class.getClassLoader().getResourceAsStream(fileName),"UTF-8"));
} catch (IOException e) {
logger.error("配置檔案讀取異常",e);
}
}
public static String getProperty(String key){
String value = props.getProperty(key.trim());
if(StringUtils.isBlank(value)){
return null;
}
return value.trim();
}
public static String getProperty(String key,String defaultValue){
//提供預設值的方法,如果在配置檔案中找不到對應的key,就返回引數中的預設值
String value = props.getProperty(key.trim());
if(StringUtils.isBlank(value)){
value = defaultValue;
}
return value.trim();
}
}
3、呼叫例子
String url = PropertiesUtil.getProperty("ftp.server.http.prefix");
4、配置檔案結構
配置檔案是以.properties
為字尾,key=value的形式作為內容的,如下所示
ftp.server.ip=localhost
ftp.user=xiao
ftp.pass=********
ftp.server.http.prefix=http://img.com/
5、總結
這種配置化的可以方便我們對專案的維護,提高程式碼的重用性,而且這種思想也適用於其他的場
景,如把專案中重用度高的程式碼封裝成一個util類,直接通過類呼叫。
PS:博文中如有什麼不對的地方懇請大家指出,謝謝~