tinguo002
2018-11-03 08:48:13
Commons-Configuration2 读取xml配置事例 - 比常规写法简便
比常规写法简便一些
配置文件
<?xml version="1.0" encoding="UTF-8"?> <!-- 第一种逆向工程xml配置 --> <configuration> <!-- 数据库链接URL、用户名、密码 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/i_wenyiba_com?useUnicode=true&characterEncoding=utf8" userId="root" password=""> </jdbcConnection> <table tableName="u_user" domainObjectName="User" tempPath="E:\soft\ideaWork\yqj\mavenproject\mgr\generationCode\resources\generationCode\ftl"> <property tempName="model.ftl" dec="实体类" targetPath="E:\soft\ideaWork\yqj\mavenproject\mgr\commonDao\src\main\java\yqj\mavenproject\commonDao\model"/> <property tempName="mapper.ftl" dec="mapper配置文件" targetPath="E:\soft\ideaWork\yqj\mavenproject\mgr\commonDao\src\main\resources\commonDao\mappers"/> </table> </configuration>
测试类
package yqj.mavenproject.util; import org.apache.commons.configuration2.XMLConfiguration; import org.junit.Test; import yqj.mavenproject.commonUtil.XmlReadUtil; /** * Unit test for simple App. */ public class XmlReadUtilTest { /** * Rigorous Test :-) */ @Test public void testExecute() { XMLConfiguration config = XmlReadUtil.execute("E:\\generatorConfig.xml"); System.out.println("******数据库连接信息******"); System.out.println(config.getString("jdbcConnection[@driverClass]")); System.out.println(config.getString("jdbcConnection[@connectionURL]")); System.out.println(config.getString("jdbcConnection[@root]")); System.out.println(config.getString("jdbcConnection[@password]","")); System.out.println("******模板信息******"); int tableLen = config.getMaxIndex("table")+1; for(int i=0;i<tableLen;i++){ System.out.println("表名:"+config.getString("table("+i+")[@tableName]")); System.out.println("对象名:"+config.getString("table("+i+")[@domainObjectName]")); System.out.println("模板父目录:"+config.getString("table("+i+")[@tempPath]")); int propertyLen = config.getMaxIndex("table("+i+").property")+1; System.out.println("table有"+propertyLen+"个子节点"); for(int j=0;j<propertyLen;j++){ System.out.println(config.getString("table("+i+").property("+j+")[@tempName]")); } } } }
工具类
package yqj.mavenproject.commonUtil; import org.apache.commons.configuration2.XMLConfiguration; import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.configuration2.tree.DefaultExpressionEngine; import org.apache.commons.configuration2.tree.DefaultExpressionEngineSymbols; import org.apache.log4j.Logger; /** * Created by Think on 2018/11/2. */ public class XmlReadUtil { private static final Logger logger = Logger.getLogger(XmlReadUtil.class); public static XMLConfiguration execute(String xmlPath){ XMLConfiguration config = null; try { Configurations configs = new Configurations(); config = configs.xml(xmlPath); { // 使用默认的符号定义创建一个表达式引擎 DefaultExpressionEngine engine = new DefaultExpressionEngine( DefaultExpressionEngineSymbols.DEFAULT_SYMBOLS); // 指定表达式引擎 config.setExpressionEngine(engine); } } catch (Exception e) { e.printStackTrace(); } return config; } }
pom.xml
<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.3</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-configuration2 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-configuration2</artifactId> <version>2.4</version> </dependency>
依赖包可能不全,根据提示再添加下。
依赖包下载地址: https://mvnrepository.com/artifact/org.apache.commons/commons-configuration2/2.4
评论