maven解析xml+测试test+注解
maven解析xml+测试test+注解
条件:maven项目
测试图:
创建maven项目,在maven项目中scr目录下有main、test(没有就创建)
一、解析XML文件方式
在main目录下有java、resources、webapp(没有就创建)
在java目录下创建源代码
Apple类
package com.wbg.entity;public class Apple {public void desc(){System.out.println("我是苹果");} }
View Code
Shop接口
package com.wbg.ioc;public interface Shop {Object getBen(String name); }
View Code
BeanShop接口
package com.wbg.ioc;import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader;import javax.xml.transform.sax.SAXResult; import java.net.URL; import java.util.List;public class BeanShop implements Shop{public BeanShop(String configXML){//创建SAXReader对象SAXReader saxReader=new SAXReader();//获取XML文件路径URL url= this.getClass().getClassLoader().getResource(configXML);try {//生成文档对应实体Document document=saxReader.read(url);List<Element> list=document.getRootElement().elements();for (Element element : list) {String id=element.attributeValue("id");String clazz=element.attributeValue("class");System.out.println(id);System.out.println(clazz);}} catch (DocumentException e) {e.printStackTrace();}}@Overridepublic Object getBen(String name) {return null;} }
在resources目录下创建xml文件
xml文件
<?xml version="1.0" encoding="UTF-8" ?> <beans><bean id="apple" class="com.wbg.fruit.Apple"></bean><bean id="banana" class="com.wbg.fruit.Banana"></bean><bean id="pear" class="com.wbg.fruit.Pear"></bean> </beans>
View Code
在test文件下创建java目录,进行刷新下
在pom文件下加入dom4j包
<dependency><groupId>org.dom4j</groupId><artifactId>dom4j</artifactId><version>2.1.1</version></dependency>
进行添加测试
创建成功
进行测试
@Testpublic void getBen() {BeanShop beanShop=new BeanShop("fruit.xml");}
成功
项目下载地址:https://github.com/weibanggang/javaXMLTest
二、使用注解方式
首先在pom文件中加入reflections
<dependency><groupId>org.reflections</groupId><artifactId>reflections</artifactId><version>0.9.10</version></dependency>
在annot包中创建一个注释
package com.wbg.annot;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface Fruit {String value() default "";int count() default 0; }
View Code
在ioc中创建BeanAnnoShop类继承Shop接口
BeanAnnoShop类
package com.wbg.ioc;import com.wbg.annot.Fruit; import org.reflections.Reflections;import java.util.HashMap; import java.util.Map; import java.util.Set;public class BeanAnnoShop implements Shop{private static Map<String,Object> map=new HashMap<>();public BeanAnnoShop(){Reflections reflections=new Reflections("com.wbg");Set<Class<?>> classes=reflections.getTypesAnnotatedWith(Fruit.class);for (Class<?> aClass : classes) {Fruit anot=aClass.getAnnotation(Fruit.class);try {map.put(anot.value(),aClass.newInstance());} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}}}@Overridepublic Object getBen(String name) {return map.get(name);} }
View Code
进行添加测试类
添加成功,输入测试
BeanAnnoShop beanAnnoShop=new BeanAnnoShop();Apple apple= (Apple) beanAnnoShop.getBen("apple");apple.desc();
完成
maven解析xml+测试test+注解相关推荐
- Dom4j遍历解析XML测试
http://lavasoft.blog.51cto.com/62575/66953 Dom4j遍历解析XML测试 近来老和XML打交道,不深挖不行了.. 这是一个Dom4j解析XML的例子,为做复杂 ...
- java dom4j解析xml 对象_Java XML解析 - 利用DOM4j解析XML
Java XML解析 - 利用DOM4j解析XML dom4j是一个简单的开源库,用于处理XML. XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP ...
- java dom解析xml字符串_dom4j解析xml字符串实例
java部分 DOM4J 与利用DOM.SAX.JAXP机制来解析xml相比,DOM4J 表现更优秀,具有性能优异.功能强大和极端易用使用的特点,只要懂得DOM基本概念,就可以通过dom4j的api文 ...
- 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)
众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...
- maven pom.xml解析、命令说明、依赖传递、继承、聚合、properties、build、依赖范围、版本仲裁、profile
maven是当前Java项目中用到最多的依赖管理工具.最开始的项目比较小引入的依赖包也少所以可以通过手动加载jar包的方式来管理依赖包:但随着项目越来越复杂各种大小框架层出不穷,一个项目的开发往往依赖 ...
- android xml解析demo,Android解析自定义xml文件--Sax解析xml文件,测试demo(方案二)...
转载请注明出处:http://blog.csdn.net/droyon/article/details/9346657 Sax解析xml 以下是测试Demo 运行程序类 public class Te ...
- maven中用dom4j解析xml文档
1.需求分析 关于dom4j的详细使用方法请参考:https://blog.csdn.net/qq_41860497/article/details/84339091 在xml中存储了过滤器的的初始化 ...
- Java解析xml文件dom4j篇(基于xml配置文件完成Excel数据的导入、导出功能完整实现)
DOM4J解析XML文件 dom4j是一个Java的XML API,是jdom的升级产品,用来读写XML文件.另外对比其他API读写XML文件,dom4j是一个十分优秀的JavaXML API,具有性 ...
- Maven pom.xml 全配置(一)常用配置
Maven pom.xml 全配置(一)常用配置 这里贴出一个Maven中出现频率较高的配置参数注释,方便理解项目中Maven的配置具体的作用.如果在此博文中没有找到你想看到的参数,可以移步Maven ...
- 解析xml数据存入bean映射到数据库的 需求解决过程
解析xml数据存入bean映射到数据库的 需求解决过程 2017年12月19日 15:18:57 守望dfdfdf 阅读数:419 标签: xmlbean 更多 个人分类: 工作 问题 编辑 版权声明 ...
最新文章
- 华中科技大学通报:取消张某某研究生导师资格,调离教师岗位,停止其教师资格...
- LED音乐频谱之输出数据处理
- python queue 多线程_Python如何实现并行的多线程?
- 使用Movie Maker制作视频相册
- org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role:no sessi
- mongodb一致性协议_mongo的怎么保持事物的一致性-问答-阿里云开发者社区-阿里云...
- 让模块支持“导入”“导出”功能
- 电子科大提出“姿态蒸馏”算法-实现快速人体姿态估计
- 以xml html编写的的学生管理系统,基于.NET和XML的学生中心数据库管理系统的研究与实现...
- Maven实现Web应用集成測试自己主动化 -- 部署自己主动化(WebTest Maven Plugin)
- 图解:如何在LINUX中安装VM-Tools
- 湖南大学操作系统期末考试之英文PPT复习提纲
- 免费pdf转换成jpg图片方法
- [C语言] 混合or连续使用getchar,scanf所出现的错误
- 1899 用迭代法求平方根
- 瓴羊CEO朋新宇:从数据发现问题到数据创造价值|2022全球数字价值峰会-阿里云开发者社区
- jQuery 实现带下拉提示且自动填充的邮箱
- LaTex公式、函数、希腊字母、符号、运算符号总结
- office 365 ppt创意操作2
- 工具 · 移动端调试工具:weinre