文档章节

通用方法重用,测试实现。

alexgaoyh
 alexgaoyh
发布于 2015/01/09 12:38
字数 594
阅读 129
收藏 2

    最近在思考代码重用的问题,举个简单的例子,为了隔离前后台的操作,前台一个项目,后台一个项目,这里就会出现部分通用代码段的重用问题,本文提供几个解决方案:

    一:    我们可以选择项目依赖,很简单的就解决这个问题,本文不对这里的解决方法进行过多描述(项目右键-Properties-Java Build Path 选中Projects,将通用的base项目代码加入到Build Path里面即可)··

    二:    将通用代码段打包Jar,今天在测试这种解决方案的时候,在使用spring注解引入jar包中的service时候,会报找不到对应的service,很奇怪的一个问题,后来查询相关资料,发现问题出现在生成jar包的方式上,即所谓打jar包

如果打包Jar的时候 选中这个Add directory entries 之后,就不会出现所谓的getResource获取资源总是为空的情况了~~


具体原因如下:

可以使用如下代码段进行测试:


public static void main(String[] args) throws Exception {
		// 项目中jar包所在物理路径
		String jarName = "E:/testpackage.jar";
		JarFile jarFile = new JarFile(jarName);
		Enumeration<JarEntry> entrys = jarFile.entries();
		while (entrys.hasMoreElements()) {
			JarEntry jarEntry = entrys.nextElement();
			System.out.println(jarEntry.getName());
		}				
	}
默认生成的jar包,运行结果如下:



META-INF/MANIFEST.MF  
    com/alexgaoyh/util/DateStyle.class  
    ……
如果勾选Add directory entries选项生成的jar包,运行结果如下:



META-INF/MANIFEST.MF  
com/  
com/alexgaoyh/  
com/alexgaoyh/util/  
com/alexgaoyh/util/DateStyle.class


默认方式生成的jar包中,只含有class文件,而并没有我们大众所知的文件夹目录结构。可能我们大多数人认为 com.alexgaoyh.Student类,Student类文件就应该在com文件夹下的alexgaoyh文件夹里,这其实是片面的,是一个误区!

com.test真正的含义是package包域名,就好比.net里的命名空间,它只是为了区分、汇总、唯一标识不同的类而提出的概念,跟文件夹目录层次结构是两回事,我们只是习惯上用文件夹目录来展示package而已。但package却不一定非要用过文件夹目录来展示。


© 著作权归作者所有

共有 人打赏支持
alexgaoyh

alexgaoyh

粉丝 76
博文 82
码字总数 65212
作品 1
郑州
后端工程师
私信 提问
软件测试中自动化测试框架设计参考准则

软件测试中自动化测试框架设计参考准则 简介 测试框架是在所有不同的测试自动化阶段定义的一整套指导准则:需求分析阶段、脚本设计阶段、执行阶段、报告和维护阶段。框架即对于内部复杂架构的...

Rebecca.Hu
2012/02/16
0
0
Winform开发框架之通用定时服务管理

做项目的时候,或多或少需要和其他外部系统或者接口进行数据交互,有些是单向的获取,有些可能是修改状态后再写回去,不管如何,这个都可以称之为数据同步操作,如人员信息同步、业务数据同步...

walb呀
2017/12/04
0
0
模板模式(TemplateMethod)和策略(StrategyMethod)模式

模板模式和 策略模式使用场景类似,都是把算法进行封装,可以用分离高层算法和低层的具体实现细节。都允许高层算法独立于他的具体实现细节的重用。但是实现方式不同,在实现方式上,模板模式...

二两豆腐
2015/11/24
4
0
SwooleDistributed 1.7 发布,不需纠结同步和异步

SwooleDistributed 1.7更新 修复redis和mysql的一些bug,统一同步和异步的调用方法和回应结果的结构。redis基本所有的命令均已测试和统一。 增加了单元测试模块。 增加了mysql,redis,contr...

白_猫
2017/01/04
1K
3
Zeppelin:用于区块链应用的开源安全智能合约架构

9月15日,Zeppelin的路线图建议发布。Zeppelin是一种构建安全智能合约的开源架构,遵循MIT许可。该建议的推出正是时候,从DevCon2大会上围绕着智能合约形式验证的报告和讨论的次数上就可以证...

雪花又一年
2018/04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

欧拉公式

欧拉公式表达式 欧拉公式的几何意 cosθ + j sinθ 是个复数,实数部分也就是实部为 cosθ ,虚数部分也就是虚部为 j sinθ ,对应复平面单位圆上的一个点。 根据欧拉公式和这个点可以用 复指...

sharelocked
35分钟前
2
0
burpsuite无法抓取https数据包

1.将浏览器和burpsuite的代理都设置好 2.在浏览器地址栏输入: http://burp 3.下载下面的证书,并将证书导入浏览器 cacert.der

Frost729
今天
1
0
JeeSite4.x 消息管理、消息推送、消息提醒

实现统一的消息推送接口,包含PC消息、短信消息、邮件消息、微信消息等,无需让所有开发者了解消息是怎么发送出去的,只需了解消息发送接口即可。 所有推送消息均通过 MsgPushUtils 工具类发...

ThinkGem
今天
6
0
OpenML

https://www.openml.org/search?type=data

shengjuntu
今天
2
0
java强引用,软引用,弱引用和虚引用

先来简要说一下这四种引用的特性: 强引用:如果一个对象具有强引用,那垃圾回收器绝不会回收它 软引用:如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它 弱引用:在垃圾...

woshixin
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部