方寸心间
一路走,十年不回头
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
::
243 随笔 :: 7 文章 :: 15 评论 :: 2 引用
DAO根据时间查看性能
利用Proxy来测试DAO中方法的执行时间
提供一个记录开始时间和结束时间的工具类
/** */
/**
* TimeTestUtil.java
*
* Copyright 2008. All Rights Reserved.
*/
package
com.easou.yybar.utils;
/** */
/**
* TODO util class TimeTestUtil
*
* Revision History
*
* 2008-7-4,Cosmo,created it
*/
public
class
TimeTestUtil
{
//
静态变量:开始时间
private
static
Long timeStart;
//
静态变量:结束时间
private
static
Long timeEnd;
//
获取开始时间并显示
public
static
void
getBeginTime()
{
timeStart
=
System.currentTimeMillis();
System.out.println(
"
当前的开始时间为:
"
+
timeStart);
}
//
获取结束时间并显示
public
static
void
getEndTime()
{
timeEnd
=
System.currentTimeMillis();
System.out.println(
"
当前的结束时间为:
"
+
timeEnd);
}
//
获取时间差量并显示
public
static
void
getTimeDispersion()
{
System.out.println(
"
当前时间差量为:
"
+
(timeEnd
-
timeStart));
}
}
建一代理类
/** */
/**
* TimeTestProxy.java
*
* Copyright 2008. All Rights Reserved.
*/
package
com.easou.yybar;
import
java.lang.reflect.InvocationHandler;
import
java.lang.reflect.Method;
import
java.lang.reflect.Proxy;
import
java.util.List;
import
com.easou.yybar.model.dao.ICatalogsDAO;
import
com.easou.yybar.model.dao.impl.CatalogsDAO;
import
com.easou.yybar.model.entity.Catalogs;
import
com.easou.yybar.utils.TimeTestUtil;
/** */
/**
* TODO proxy class TimeTestProxy
*
* Revision History
*
* 2008-7-4,Cosmo,created it
*/
public
class
TimeTestProxy
implements
InvocationHandler
{
//
代理对象
private
Object proxyObj;
public
TimeTestProxy(Object obj)
{
this
.proxyObj
=
obj;
}
//
静态工厂方法
@SuppressWarnings(
"
unchecked
"
)
public
static
Object factory(Object obj)
{
//
放射获取实现类
Class cls
=
obj.getClass();
//
生成新的接口实现并利用invoke调用额外的方法
return
Proxy.newProxyInstance(cls.getClassLoader(),
cls.getInterfaces(),
new
TimeTestProxy(obj));
}
public
Object invoke(Object proxy, Method method, Object[] args)
throws
Throwable
{
//
调用方法前的工作,取得开始时间
TimeTestUtil.getBeginTime();
//
调用实现类自身的方法
Object o
=
method.invoke(proxyObj, args);
//
调用方法后的工作,取得结束时间
TimeTestUtil.getEndTime();
//
调用方法后的工作,取得时间差值
TimeTestUtil.getTimeDispersion();
return
o;
}
}
在test类中使用
/** */
/**
* CatalogsDAOTest.java
*
* Copyright 2008. All Rights Reserved.
*/
package
com.easou.yybar.catalogs;
import
com.easou.yybar.BaseTestCase;
import
com.easou.yybar.TimeTestProxy;
import
com.easou.yybar.model.dao.ICatalogsDAO;
/** */
/**
* TODO test CatalogsDAOTest.class
*
* Revision History
*
* 2008-6-17,Cosmo,created it
*/
public
class
CatalogsDAOTest
extends
BaseTestCase
{
ICatalogsDAO catalogsDao
=
null
;
@Override
protected
void
onSetUp()
throws
Exception
{
catalogsDao
=
(ICatalogsDAO)
this
.getApplicationContext().getBean(
"
catalogsDAO
"
);
super
.onSetUp();
}
@Override
protected
void
onTearDown()
throws
Exception
{
catalogsDao
=
null
;
super
.onTearDown();
}
@SuppressWarnings(
"
unchecked
"
)
public
void
testCatalogsDAO()
{
catalogsDao
=
(ICatalogsDAO)TimeTestProxy.factory(catalogsDao);
final
int
TYPE_F
=
1
;
final
int
TYPE_Y
=
2
;
int
page
=
1
;
int
rowsPerPage
=
4
;
assertEquals(rowsPerPage, catalogsDao.findCatalogsByType(TYPE_F, page,
rowsPerPage).size());
assertEquals(rowsPerPage, catalogsDao.findCatalogsByType(TYPE_Y, page,
rowsPerPage).size());
assertEquals(
8
, catalogsDao.findCatalogsByType(TYPE_F,
0
,
-
1
).size());
assertEquals(
8
, catalogsDao.findCatalogsByType(TYPE_Y,
1
,
-
1
).size());
}
}
查看结果得出结论
Tag标签:
Java
,
J2EE
posted on 2008-07-04 11:40
方寸心间
阅读(22)
评论(0)
编辑
收藏
所属分类:
Java
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
闪存
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关文章:
EditPlus v2.12 使用技巧集之工具集成
小菜编程成长记(十三 设计模式不能戏说!设计模式怎就不能戏说?)
谁动了项目的时间?
Java -- 在Eclipse上使用XFire开发WebService
Java实现完全开源
Facebook宣布放弃Java支持
Java 的库是用什么语言写的?
抢啊抢,抢沙发!
书籍推荐:《Java数据结构与算法》
10年磨一剑,准备出书《Java组件高级设计》
相关链接:
所属分类的其他文章:
sun jdk,Tomcat在Linux下的安装
【转】P6Spy + SQL Profiler + IronTrackSQL【修改】
工具类:DateUtils类提供日期的处理方法
工具类:统计在线人数
【转】华为的JAVA面试题
【转】华为Java笔试题
struts2中struts.properties属性详解
java常见错误以及可能原因
在Hibernate中配置多对多连接表
在Hibernate中配置一对多连接表
最新IT新闻:
国外媒体评出史上十大悬疑网络犯罪
AMD拆分方案已确认 获阿联酋84亿美元投资
雅虎新闻首页改版,宽屏、共享、组件
传阿里投资淘宝超40亿元 应对百度C2C
传雅虎最快本月将宣布收购美国在线
<
2008年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
公告
相册:
一路走过
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(2)
给我留言
查看留言
我参加的小组
每日一句英语
我的标签
Linux
(163)
Java
(29)
Other
(21)
J2EE
(11)
Oracle
(7)
Eclipse
(4)
Hibernate
(4)
开发工具
(3)
MySQL
(3)
Gentoo
(3)
更多
随笔分类
HTML/Javascript(6)
(rss)
Java(36)
(rss)
Linux(163)
(rss)
服务器(1)
(rss)
开发工具(5)
(rss)
软件工程(1)
(rss)
生活中琐碎的故事(12)
(rss)
数据库(10)
(rss)
音乐(1)
(rss)
随笔档案
2008年10月 (4)
2008年9月 (8)
2008年8月 (6)
2008年7月 (14)
2008年6月 (70)
2008年5月 (22)
2008年4月 (77)
2007年7月 (1)
2007年6月 (4)
2007年5月 (6)
2007年4月 (23)
2007年3月 (8)
相册
旅途
收藏夹
html
(rss)
Java学习(1)
(rss)
数据库
(rss)
论坛
DingL
学习资源
ajax&atlas技术
里面有一些ajax&atlas相关的技术动态,提供ajax和atlas的技术体验
asp.net forums
一个asp.net的论坛。
CodeProject
(rss)
微软webform开发的一个站点,代码很经典。
CSDN-JAVA圈子
IT技术开发综合类
JAVA开发者
博客园JAVA圈子
一直不知道
软件测试
优秀链接
隔叶黄莺 The Blog of Unmi
(rss)
清清月儿
很多可以学习的
易载
源码下载
DownCode
knowsky
代码爱好者
极品源码
源码吧
源码网
源码之
站长站
中国建站
中国源码中心
最新评论
1. re: 旧文重现,10种职场经典寓言
顶!!!!!
--留心的博客
2. re: Hibernate3的配置参数汇总
@Charles Duong
不客气!
--方寸心间
阅读排行榜
1. 转载 .net面试题大全(有答案)(2314)
2. linux ln(link) 命令详解(810)
3. linux diff(differential) 命令详解(610)
4. linux cat 命令详解 (561)
5. linux mv 命令详解(523)
评论排行榜
1. 转载 .net面试题大全(有答案)(8)
2. 旧文重现,10种职场经典寓言(2)
3. Hibernate3的配置参数汇总(2)
4. 旅行计划(1)
5. 第一次推荐网络小说---<<弹痕>>(1)
60天内阅读排行
1. 工具类:DateUtils类提供日期的处理方法(62)
2. ubuntu linux学习笔记(49)
3. 工具类:统计在线人数(39)
4. 【转】MyEclipse优化技巧(24)
5. about linux(23)
Powered by:
博客园
Copyright © 方寸心间