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("我是苹果");
}
}
Shop接口
package com.wbg.ioc; public interface Shop {
Object getBen(String name);
}
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();
} }
@Override
public 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>
在test文件下创建java目录,进行刷新下
在pom文件下加入dom4j包
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.1</version>
</dependency>
进行添加测试
创建成功
进行测试
@Test
public 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;
}
在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();
}
}
}
@Override
public Object getBen(String name) {
return map.get(name);
}
}
进行添加测试类
添加成功,输入测试
BeanAnnoShop beanAnnoShop=new BeanAnnoShop();
Apple apple= (Apple) beanAnnoShop.getBen("apple");
apple.desc();
完成
maven解析xml+测试test+注解的更多相关文章
- 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)
众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...
- 四种生成和解析XML文档的方法详解
众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...
- DOM生成XML文档与解析XML文档(JUNIT测试)
package cn.liuning.test; import java.io.File; import java.io.IOException; import javax.xml.parsers.D ...
- 史上最全的maven pom.xml文件教程详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- java生成解析xml的另外两种方法Xstream
Xstream生成和解析xm和JAXB生成和解析xml的方法. 一,Xstream Xstream非jdk自带的,需要到入Xstream-1.4.3.jar和xpp3_min-1.1.4.jar 1. ...
- Jaxb解析xml准换为javabean
先说下这个的背景吧,前些日子,有个以前的小同事说刚接触webservice,想解析下xml,记得我学的时候还是dom4j,sax的解析方式,最近看别人的代码用的jaxb的方式,觉得注解起来很简练,所以 ...
- webservice04#对象与xml转换-jaxb#Stax解析xml#新建修改xml
1,Student类 package com.yangw.xml; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement / ...
- dom解析xml随笔
1.dom解析jar包准备: dom解析需用到dom4j的jar包,比如我在项目中用到的的是dom4j-1.6.1jar,因为项目用的是MAVEN,所以可直接到maven中央库去搜索相关pom坐标配置 ...
- (转)Maven pom.xml 配置详解
背景:maven一直感觉既熟悉又陌生,归根结底还是自己不太熟. 1 什么是pom? pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者 ...
随机推荐
- MAC环境下idea:maven+Spring+Dubbo+Zookeeper简单工程搭建
: 一:安装软件:tomcatZookeeperDubbo+admin 二:工程: 总工程 API Pom.xml:不用引用任何东西 Provider Pom.xml:要denpend ...
- inventor安装失败怎样卸载安装inventor 2019?
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- Linux小知识(1): bash中执行数据库的相关操作
工作中经常会遇到命令行操作数据库或登陆至其他服务器等情况,往往需要通过命令行进入相关的数据库或登陆至相关的服务器,再执行指令操作,因此有没有方法,在命令行或bash脚本中模拟进入数据库或登陆服务器操作 ...
- GitKraken使用教程-基础部分(1)
1. 首次打开程序 第一次打开GitKraken程序时, GitKraken会提示需要登陆,可以用github.com的账号登陆,或者用邮箱创建账号登陆(如图 1‑1). 图 1‑1登陆帐户界面 登陆 ...
- 利用jquery给指定的table动态添加一行、删除一行,复制,值不重复等操作
$("#mytable tr").find("td:nth-child(1)") 1表示获取每行的第一列$("#mytable tr").f ...
- Java入门之Tomcat运行
在上一篇<Java入门之Tomcat安装及环境变量配置>中提到,启动Tomcat要保持CMD下执行startup.bat的界面不关闭,才能访问Tomcat. 这是因为只有保持startup ...
- DJ轮回舞曲网下载教程
该网站网址为:http://www.92cc.com/ 昨天有网友问我这个网站能不能下载.我告诉他,只要能在线试听的就能下载 于是今天出个临时教程 教大家如何获取试听的音乐URL. 第一步找到试听的网 ...
- EntityFramework报错
解决:未能加载文件或程序集“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089” 使用 ...
- [Java][Liferay] File system in liferay
EditFileEntryAction.java protected FileEntry updateFileEntry(PortletConfig portletConfig, ActionRequ ...
- Spring课程 Spring入门篇 3-2 Spring bean装配(上)之bean的生命周期
课程链接: 本节主要讲了三大块内容 1 bean的生命周期概念 2 bean的初始化和销毁的三种方式对比(代码演练) 3 总结 1 bean的生命周期概念 1.1 bean的定义:xml中关于bean ...