日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Configutation读取properties文件信息

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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文件信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。