properties文件是Java平台默認的配置文件格式,其優點是格式清晰,簡單易懂,使用commons-configuration讀取properties文件也比較簡單,代碼如下:
基本用法:
1.加載jar包,我使用maven自動加載,pom.xml配置如下:
- <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文件夾中的;