小小程序员
BlogJava
|
首页
|
发新随笔
|
发新文章
|
|
|
管理
最简单的动态代理实例(spring基于接口代理的AOP原理)
JDK的动态代理是基于接口的
package
com.open.aop;
public
interface
BusinessInterface
{
public
void
processBusiness();
}
目标对象
package
com.open.aop;
public
class
BusinessObject
implements
BusinessInterface
{
public
void
processBusiness()
{
System.out.println(
"
action
"
);
}
}
代理对象
package
com.open.aop;
import
java.lang.reflect.InvocationHandler;
import
java.lang.reflect.Method;
import
java.lang.reflect.Proxy;
public
class
LogHandler
implements
InvocationHandler
{
private
Object delegate;
public
Object binder(Object delegate)
{
this
.delegate
=
delegate;
return
Proxy.newProxyInstance(delegate.getClass().getClassLoader(),
delegate.getClass().getInterfaces(),
this
);
}
public
Object invoke(Object proxy, Method method, Object[] args)
throws
Throwable
{
Object obj
=
null
;
System.out.println(
"
对象方法调用前
"
);
try
{
obj
=
method.invoke(delegate, args);
}
catch
(Exception e)
{
}
System.out.println(
"
对象方法调用后
"
);
return
obj;
}
}
测试类
package
com.open.aop;
import
java.lang.reflect.InvocationHandler;
import
java.lang.reflect.Proxy;
public
class
Test
{
public
static
void
main(String[] args)
{
BusinessInterface bi
=
(BusinessInterface)
new
LogHandler()
.binder(
new
BusinessObject());
bi.processBusiness();
}
}
输出结果
对象方法调用前
action
对象方法调用后
发表于 2006-06-09 10:20
~小Q
阅读(1639)
评论(1)
编辑
收藏
所属分类:
『
Spring
』
评论
#
re: 最简单的动态代理实例(spring基于接口代理的AOP原理)
挺不错 简单易懂
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
图解spring mvc
Quartz的cron表达式
在spring利用javamail,quartz定时发送邮件
spring对java远程调用的简化(三)之HTTPinvoker
spring对java远程调用的简化(二)之Hessian,Burlap
spring对java远程调用的简化(一)之RMI
spring中事务的属性
事务的特点以及spring提供事务管理器的简介
ProxyFactoryBean属性介绍
spring中基础核心接口介绍
<
2006年6月
>
日
一
二
三
四
五
六
28
29
30
31
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
1
2
3
4
5
6
7
8
公告
spring-谁与争锋
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
(4)
给我留言
查看公开留言
查看私人留言
随笔分类
『
eclipse
』(2)
(rss)
『
Flash
』(1)
(rss)
『
JavaScript
』(1)
(rss)
『
Maven
』(1)
(rss)
『
Spring
』(17)
(rss)
『
springside
』(1)
(rss)
『
汇编
』(4)
(rss)
『
计划
』(1)
(rss)
相册
spring
Blog
论坛
积分与排名
积分 - 62506
排名 - 841
最新评论
1. re: 在spring利用javamail,quartz定时发送邮件[未登录]
感觉不错吗、
--xiaoxiao
2. re: JavaScript中的arguments,callee,caller,call,appy
不错啊
--artwl
3. re: JavaScript中的arguments,callee,caller,call,appy[未登录]
注意,arguments[0] 是对的。arguments是一个Object。
--你好
4. re: JavaScript中的arguments,callee,caller,call,appy
评论内容较长,点击标题查看
--zhangsir199
5. re: Maven的eclipse插件使用的flash教程[未登录]
除了插件是真的之外,其他怎么全是假的?
--王子