城市猎人
在一网情深的日子里,谁能说得清是苦是甜,只知道确定了就义无反顾
posts - 1, comments - 7, trackbacks - 0, articles - 89
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2014年12月
>
日
一
二
三
四
五
六
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
10
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
(3)
给我留言
查看公开留言
查看私人留言
文章分类
(90)
AJAX-DWR/EXT/JQUERY(1)
EJB3(5)
Glassfish(2)
Hibernate(1)
ibatis(2)
java(12)
javascript(4)
linux(3)
mysql(1)
oracle(28)
others
PowerDesigner(1)
Solaris(2)
spring(5)
struts(2)
struts2(2)
weblogic(1)
分录(2)
心得体会(1)
模式(12)
网络笔试题集(1)
错误集(1)
锤炼(1)
文章档案
(90)
2012年8月 (1)
2011年12月 (1)
2011年11月 (1)
2011年8月 (2)
2011年3月 (1)
2010年6月 (1)
2009年9月 (1)
2009年8月 (4)
2009年7月 (2)
2009年6月 (1)
2009年4月 (5)
2009年3月 (3)
2009年1月 (2)
2008年12月 (8)
2008年11月 (5)
2008年10月 (7)
2008年9月 (3)
2008年8月 (6)
2008年7月 (33)
2008年5月 (3)
收藏夹
(12)
Ext
Hibernate
Ibatis(2)
J2EE(1)
J2SE(4)
Jquery
Mysql
Oracle(1)
Spring
strtus
Struts2(3)
Weblogic
下载地址(1)
设计模式
软件工程
搜索
最新评论
1. re: AOP之静态代理和动态代理
@AloneAli不好意思,弄错了。代理模式是种模式。。。不是装饰者模式。
--AloneAli
2. re: AOP之静态代理和动态代理
实质就是装饰者模式?
--AloneAli
3. re: struts与jquery整合[未登录]
学习下!
--力
4. re: struts与jquery整合
很好,很强大,谢谢了
--f
5. re: struts与jquery整合
thanks
--ami
AOP之静态代理和动态代理
Posted on 2009-08-02 11:31
sailor
阅读(913)
评论(2)
编辑
收藏
所属分类:
spring
一、静态代理:
静态代理要求代理对象和被代理对象实现同一个对象。
IUserService:
package
com.swjs.aop.serivce;
import
java.util.List;
/** */
/**
*
@author
jason
*
*/
public
interface
IUserService
{
List getUserList();
}
被代理类UserService:
package
com.swjs.aop.serivce;
import
java.util.List;
/** */
/**
*
@author
jason
*
*/
public
class
UserService
implements
IUserService
{
public
List getUserList()
{
System.out.println(
"
get Userlist
"
);
return
null
;
}
}
代理类:
package
com.swjs.aop.serivce;
import
java.util.List;
/** */
/**
*
@author
jason
*
*/
public
class
SecureProxy
implements
IUserService
{
private
IUserService userService;
public
SecureProxy(IUserService userService)
{
super
();
this
.userService
=
userService;
}
public
List getUserList()
{
System.out.println(
"
身份检查
"
);
userService.getUserList();
System.out.println(
"
事务提交
"
);
return
null
;
}
}
测试类:
package
com.swjs.aop.serivce;
/** */
/**
*
@author
jason
*
*/
public
class
StaticProxyTest
{
/** */
/**
*
@param
args
*/
public
static
void
main(String[] args)
{
IUserService userService
=
new
UserService();
SecureProxy proxy
=
new
SecureProxy(userService);
proxy.getUserList();
}
}
显示结果:
身份检查
get Userlist
事务提交
二:动态代理
接口
public
interface
IUserService
{
public
void
getUserList(
int
start,
int
limit);
}
业务方法:
public
class
UserService
implements
IUserService
{
public
void
getUserList(
int
start,
int
limit)
{
System.out.println(
"
start:
"
+
start
+
"
limit:
"
+
limit );
System.out.println(
"
get user List
"
);
}
}
处理器:
public
class
SecureHandler
implements
InvocationHandler
{
private
IUserService service;
public
SecureHandler(IUserService service)
{
super
();
this
.service
=
service;
}
public
Object invoke(Object proxy, Method method, Object[] arg)
throws
Throwable
{
System.out.println(
"
trac begin
"
);
System.out.println(arg.length);
for
(
int
i
=
0
; i
<
arg.length; i
++
)
{
System.out.println(arg[i]);
}
method.invoke(service, arg);
System.out.println(
"
trac end
"
);
return
null
;
}
}
测试类:
public
class
DynamicProxyTest
{
public
static
void
main(String[] args)
{
IUserService service
=
new
UserService();
SecureHandler handler
=
new
SecureHandler(service);
IUserService serv
=
(IUserService)Proxy.newProxyInstance(service.getClass().getClassLoader(),
service.getClass().getInterfaces(), handler);
serv.getUserList(
0
,
10
);
}
}
显示结果:
trac begin
2
0
10
start:
0
limit:
10
get user List
trac end
Feedback
#
re: AOP之静态代理和动态代理
回复
更多评论
2014-12-05 17:03 by
AloneAli
实质就是装饰者模式?
#
re: AOP之静态代理和动态代理
回复
更多评论
2014-12-05 17:11 by
AloneAli
@AloneAli不好意思,弄错了。代理模式是种模式。。。不是装饰者模式。
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
AOP之静态代理和动态代理
spring 生命式事务管理配置
spring aop总结
Spring事务配置的五种方式
配置Spring的方法(转)
Powered by:
BlogJava
Copyright © sailor