TestNg监听器(一)-----监听器的类型和配置使用的方法---附加META-INF详解

简介: 原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong/article/details/40404939 TestNg提供了监听器和拦截器的几个接口供我们自己开发扩展,通过实现这些接口,来自定义我们在测试中想要的行为 接口列表: IAnnotationTransformer (doc,javadoc) IAnnota

原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong/article/details/40404939


TestNg提供了监听器和拦截器的几个接口供我们自己开发扩展,通过实现这些接口,来自定义我们在测试中想要的行为

接口列表:

原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong/article/details/40404939

TestNg提供了三种方式来配置开发者自己的接口:

1.注解

在TestNg中提供了一个类级别的注解,@Listeners({*.class, *.class})

*.class就是我们自己实现的监听

这种方式在我们开发中比较常用

2.配置文件

在配置文件中我们可以通过

<listeners>
        <listener class-name="全类名"></listener>
    </listeners>

来进行插拔式配置,这种方式是更灵活的,比第一种写死在代码中更为方便

3.通过ServiceLoader的方式

这种方式是比较复杂的,它更多的使用于对在编写扩展框架时使用,比如我们对TestNg的增强,然后封装成框架,提供给别人使用

说到打包就不得不说的一个东西META-INF,其实我们在工程文件中经常看到这个它,但是似乎一部分人不大知道它的作用,

在研究TestNg这个功能之前,我也是属于这一部分人中的

下面先说META-INF

它包含了如下文件/文件夹

1.MANIFEST.MF ----- 定义一些扩展和打包相关的数据

2.INDEX.LIST ------ 这文件是在jar 工具打包的时候 使用 ' -i ' 选项来生成的,它包含了应用程序或扩展包中的位置声明,它是JarIndex实现的一部分,通常被类加载器用来加速类的加载过程

3.x.SF ------ jar文件的签名文件

4.x.DSA ------ 签名块文件,用同样的文件名关联着签名文件,这个文件存储了签名摘要和签名文件是一样的。

5.services/ ------ 这个目录用来存储所有的业务供应源的配置文件

上述的这些文件或文件夹可以被Java 2 平台自动的识别和解读并配置到应用程序、扩展、类加载器和业务中


接下来我们要做的就是把我们写好的接口扩展实现类(.class),和META-INF中放在同一个目录下,记得类如果带有包名,那么和META-INF同级的是包的根目录

然后我们在META-INF中创建services文件夹,在其中创建一个文件,文件名为我们实现的接口的名称,文件内容写的是我们的实现类的完整目录

将META-INF和类文件打包生成jar文件

此时就完成了,我们只需要把生成的jar包添加到项目中就可以了。

注:如果我们在IDE中操作,那么我们需要注意哦,如果你把写好的实现类复制出来打包又引入回去的话,,,其实这个时候,源码的中的代码是会覆盖jar包中的代码执行的


原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong/article/details/40404939


目录
相关文章
|
前端开发 Java
JavaWeb17(过滤器&监听器)
JavaWeb17(过滤器&监听器)
131 0
|
5月前
|
前端开发 JavaScript 算法
javaweb(四)——过滤器与监听器
javaweb(四)——过滤器与监听器
|
6月前
|
Java 程序员 应用服务中间件
JavaWeb之过滤器(Filter)与监听器(Listener)
本文介绍了JavaWeb中的过滤器(Filter)和监听器(Listener)概念及其使用。过滤器主要用于拦截和处理Web资源请求,如进行编码设置、权限验证等,它在Servlet之前和之后执行。监听器则监听域对象(如ServletRequest、HttpSession、ServletContext)状态变化,分为创建/销毁监听和属性变化监听。监听器在Web.xml中注册后会在相应事件发生时自动执行,例如用于统计网站访问人数或初始化配置。
|
6月前
javaWeb监听器Listener -自定义监听器类实现
javaWeb监听器Listener -自定义监听器类实现
解决无法读取META-INF.services里面定义的类
解决无法读取META-INF.services里面定义的类
147 0
|
Web App开发 安全 iOS开发
04dwr - web.xml配置(常用 init-param 参数列表)
04dwr - web.xml配置(常用 init-param 参数列表)
46 0
|
XML 数据格式
告别web.xml映射Servlet、Filter、Listener,解锁注解新方式开发
告别web.xml映射Servlet、Filter、Listener,解锁注解新方式开发
|
XML 监控 Java
Listener 监听器介绍以及代码演示
Listener 监听器介绍以及代码演示
114 0
|
设计模式 监控 前端开发
JavaWeb中的Filter过滤器和Listener监听器
JavaWeb中的Filter过滤器和Listener监听器
|
算法 Java
javaweb(四)——过滤器与监听器(中)
javaweb(四)——过滤器与监听器