网站服务器和空间的区别,全国建筑工程企业资质查询平台,百度企业查公司名录,wordpress 商家定位commons configuration可以很方便的访问配置文件和xml文件中的的内容。Commons Configuration 是为了提供对属性文件、XML文件、JNDI资源、来自JDBC Datasource数据的访问。 官方文档#xff1a;http://commons.apache.org/proper/commons-configuration/ 我们研究configurati…commons configuration可以很方便的访问配置文件和xml文件中的的内容。Commons Configuration 是为了提供对属性文件、XML文件、JNDI资源、来自JDBC Datasource数据的访问。 官方文档http://commons.apache.org/proper/commons-configuration/ 我们研究configuration1版本的最新的是2的版本暂时没使用。 1、Maven中引入相关的jar !-- 配置文件读取 --dependencygroupIdcommons-configuration/groupIdartifactIdcommons-configuration/artifactIdversion1.5/version/dependencydependencygroupIdcommons-codec/groupIdartifactIdcommons-codec/artifactIdversion1.10/version/dependency 2、读取properties文件的内容 1新建一个data.properties nameparry
port21
flagtrue
usersTom,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);ListString users (ListString) Test.getListValue(users);for (String user : users) {System.out.println(user: user);}} 3、读取XML配置文件 1新建一个XMl文件 ?xml version1.0 encodingUTF-8?
configdatabaseurl127.0.0.1/urlport1521/portloginadmin/loginpasswordpass/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 MapString, Object configMap new ConcurrentHashMapString, 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