java 讀取不同的配置文件


關於JAVA 中的Configuration類

properties文件是Java平台默認的配置文件格式,其優點是格式清晰,簡單易懂,使用commons-configuration讀取properties文件也比較簡單,代碼如下:

 

基本用法:maven自動加載,pom.xml配置如下:

1.加載jar包,我使用

<dependency>  
    <groupId>commons-configuration</groupId>  
    <artifactId>commons-configuration</artifactId>  
    <version>1.9</version>  
</dependency>  
<!-- commons-configuration 自動加載的是2.1的版本,編譯時會報錯,所以再加上這個 -->  
<dependency>  
    <groupId>commons-lang</groupId>  
    <artifactId>commons-lang</artifactId>  
    <version>2.6</version>  
</dependency>  

  

common-lang這個包要用新版的,如果不寫這個依賴,commons-configuration會下載一個2.1舊版,導致編譯出錯

2.java代碼:

PropertiesConfiguration config = new PropertiesConfiguration(“/database.properties”);  
String userName = config.getString("name");  

  除了getString()方法外,還有getBoolean,getDouble,getInteger等不同返回類型的方法可以調用。

進階用法:

一個項目有會有多個配置文件,這時有個統一的配置文件管理類就很有必要了,我寫了一個簡單的,大家可以參考下,有不妥的用法也請指出來

1.java類

package com.xxx.xxx.util;  
  
import java.util.HashMap;  
import java.util.Map;  
  
import org.apache.commons.configuration.ConfigurationException;  
import org.apache.commons.configuration.PropertiesConfiguration;  
/** 
 * <p> 
 * 讀取配置文件類 
 * </p> 
 * <p> 
 * 根據配置文件名和屬性key返回屬性內容,configUtil.get(configFile, property); 
 * </p> 
 * @author shengzhi.rensz 
 * 
 */  
public class configUtil {  
  
    private static configUtil initor = new configUtil();     
      
    private static Map<String, Object> configMap = new HashMap<String, Object>();  
      
    private configUtil() {}  
      
    /** 
     * 獲取內容 
     * @param configFile 
     * @param property 
     * @return 
     */  
    public static String get(String configFile, String property) {     
        if(!configMap.containsKey(configFile)) {     
           initor.initConfig(configFile);  
        }  
        PropertiesConfiguration config = (PropertiesConfiguration) configMap.get(configFile);  
        String value = config.getString(property);  
        //TODO LOG  
        return value;     
    }     
      
    /** 
     * 載入配置文件,初始化后加入map 
     * @param configFile 
     */  
    private synchronized void initConfig(String configFile) {      
        try {  
            PropertiesConfiguration config = new PropertiesConfiguration(configFile);  
            configMap.put(configFile, config);  
              
        } catch (ConfigurationException e) {  
            e.printStackTrace();  
        }  
    }     
}  

2.調用方法

configUtil.get("/common/velocity.properties", "input.encoding");  
public static void readProperties() throws ConfigurationException {  
        PropertiesConfiguration pcfg = new PropertiesConfiguration("config/cfg.properties");  
        System.out.println(pcfg.getString("platform.jre"));  
    }  

 

注意,這里的路徑一定要搞清楚,配置文件是放在config文件夾中的;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM