Configutation读取properties文件信息
生活随笔
收集整理的這篇文章主要介紹了
Configutation读取properties文件信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
commons configuration可以很方便的訪問配置文件和xml文件中的的內容。Commons Configuration 是為了提供對屬性文件、XML文件、JNDI資源、來自JDBC Datasource數據的訪問。
官方文檔:http://commons.apache.org/proper/commons-configuration/
我們研究configuration1版本的,最新的是2的版本,暫時沒使用。
1、Maven中引入相關的jar
<!-- 配置文件讀取 --><dependency><groupId>commons-configuration</groupId><artifactId>commons-configuration</artifactId><version>1.5</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.10</version></dependency>2、讀取properties文件的內容
(1)新建一個data.properties
name=parry port=21 flag=true users=Tom,parry(2)工具類讀取
package icp;import java.util.List;import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;public class Test {public static final String fileName = "data.properties";public static PropertiesConfiguration cfg = null;static {try {cfg = new PropertiesConfiguration(fileName);} catch (ConfigurationException e) {e.printStackTrace();}// 當文件的內容發生改變時,配置對象也會刷新cfg.setReloadingStrategy(new FileChangedReloadingStrategy());}// 讀Stringpublic static String getStringValue(String key) {return cfg.getString(key);}// 讀intpublic static int getIntValue(String key) {return cfg.getInt(key);}// 讀booleanpublic static boolean getBooleanValue(String key) {return cfg.getBoolean(key);}// 讀Listpublic static List<?> getListValue(String key) {return cfg.getList(key);}// 讀數組public static String[] getArrayValue(String key) {return cfg.getStringArray(key);}}?
(3)測試
public static void main(String[] args) {String name = Test.getStringValue("name");System.out.println("name:" + name);int port = Test.getIntValue("port");System.out.println("port:" + port);boolean flag = Test.getBooleanValue("flag");System.out.println("flag:" + flag);List<String> users = (List<String>) Test.getListValue("users");for (String user : users) {System.out.println("user:" + user);}}?
3、讀取XML配置文件
(1)新建一個XMl文件
<?xml version="1.0" encoding="UTF-8"?> <config><database><url>127.0.0.1</url><port>1521</port><login>admin</login><password>pass</password></database> </config>(2)讀取XML配置的工具文件
package icp;import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.XMLConfiguration; import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;public class XmlTest {public static final String fileName = "XMLProperties.xml";public static XMLConfiguration cfg = null;static {try {cfg = new XMLConfiguration(fileName);} catch (ConfigurationException e) {e.printStackTrace();}// 配置文件 發生變化就重新加載cfg.setReloadingStrategy(new FileChangedReloadingStrategy());}public static String getStringValue(String key) {return cfg.getString(key);}public static int getIntValue(String key) {return cfg.getInt(key);} }這里只是添加讀取String 和讀取Int的方法,其他的方法類似。
(3)測試
public static void main(String[] args) {String url = XmlTest.getStringValue("database.url");System.out.println("url:" + url);int port =XmlTest.getIntValue("database.port");System.out.println("port:"+port);}由于項目中,經常有多個配置文件,最后提供一個工具類:
public class PropertiesUtil {public static Map<String, Object> configMap = new ConcurrentHashMap<String, Object>();public static String getStringValue(String fileName, String key) {if (!configMap.containsKey(key)) {PropertiesUtil.initConfig(fileName);}if (fileName.endsWith(".properties")) {PropertiesConfiguration cfg = (PropertiesConfiguration) configMap.get(fileName);return cfg.getString(key);} else if (fileName.endsWith(".xml")) {XMLConfiguration cfg = (XMLConfiguration) configMap.get(fileName);return cfg.getString(key);}return null;}private static void initConfig(String fileName) {try {if (fileName.endsWith(".xml")) {XMLConfiguration cfg = new XMLConfiguration(fileName);configMap.put(fileName, cfg);} else if (fileName.endsWith(".properties")) {PropertiesConfiguration cfg = new PropertiesConfiguration(fileName);configMap.put(fileName, cfg);}} catch (ConfigurationException e) {e.printStackTrace();}} }測試:
public static void main(String[] args) {String name= PropertiesUtil.getStringValue("data.properties", "name");System.out.println(name);String url = PropertiesUtil.getStringValue("data.xml", "database.url");System.out.println(url);}?
非原創,來源地址:https://www.cnblogs.com/parryyang/p/6197685.html
轉載于:https://www.cnblogs.com/lr393993507/p/9577712.html
總結
以上是生活随笔為你收集整理的Configutation读取properties文件信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MAC下快速打开指定目录
- 下一篇: elastic-job调度任务分析