vista
回顾※展望
潜心技术&&不再搁浅
BlogJava
::
首页
::
联系
::
聚合
::
管理
12 Posts :: 1 Stories :: 13 Comments :: 0 Trackbacks
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
java基础(3)
web框架
web相关(3)
关注业界
兴趣爱好
开源※类库(2)
敏捷开发
数据库(2)
生活感悟(3)
设计模式
通讯录
随笔档案
2006年12月 (6)
2006年11月 (2)
2006年10月 (2)
2006年9月 (2)
文章档案
2006年11月 (1)
搜索
最新评论
1. 比多更多
呵呵 没得选择很难,多的选择更难,还是希望接到更多通知上班的电话,这样你就占优势了呀!祝福朋友!
--微牧印象
2. re: 随想一
评论内容较长,点击标题查看
--风的声音
3. re: 华为面试归来
评论内容较长,点击标题查看
--Vista
4. re: vista精神之 --javascript篇
hi, buddy, i have sent an email to u about customized Google Search engine
--Dedian
5. re: vista精神之 --javascript篇
评论内容较长,点击标题查看
--123bingbing
阅读排行榜
1. 转贴 -- 通过分析SQL语句的执行计划优化SQL(总结)(3442)
2. 华为面试归来(2525)
3. vista精神之 --javascript篇(1816)
4. vista精神之--动态代理学习(1652)
5. vista精神之-dom4j读写xml文件(1434)
评论排行榜
1. vista精神之 --javascript篇(10)
2. 华为面试归来(2)
3. 随想一(1)
4. vista 精神之 - 类库篇(0)
5. vista 精神之 - 面向对象篇(0)
vista精神之--动态代理学习
这个知识点不多,但属于java的高级技术,相信熟悉SPRING的朋友对它一定不会陌生,今天花了点时间对java的动态代理进行了学习,感觉还可以,因为是结合spring来看的,所以练习的是面向接口的代理模式,但应该也是最常用的动态代理..,废话不多说,看例子:
package
org.diego;
public
interface
Ip
{
public
void
say();
}
实现类:
package
org.diego;
public
class
P
implements
Ip
{
public
void
say()
{
System.out.println(
"
hello
"
);
}
}
代理类:
package
org.diego;
import
java.lang.reflect.InvocationHandler;
import
java.lang.reflect.Method;
class
TraceHandler
implements
InvocationHandler
{
private
Object target;
public
TraceHandler(Object t)
{
target
=
t;
}
public
Object invoke(Object proxy, Method method, Object[] args)
throws
Throwable
{
//
TODO Auto-generated method stub
if
(method.getName().startsWith(
"
say
"
))
{
System.out.println(
"
hello,before method
"
);
Object result
=
method.invoke(target, args);
System.out.println(
"
World,after method
"
);
return
result;
}
return
null
;
}
}
测试类:
/**/
/*
* @author diego.liu
* @contact vista.lbw@gmail.com
* @date 2006-11-7
*/
package
org.diego;
import
java.lang.reflect.InvocationHandler;
import
java.lang.reflect.Proxy;
public
class
ProxyTest
{
public
static
void
main(String[] args)
{
P test
=
new
P();
InvocationHandler handler
=
new
TraceHandler(test);
Ip proxy
=
(Ip) Proxy.newProxyInstance(test.getClass().getClassLoader(), test.getClass().getInterfaces(),
handler);
proxy.say();
}
}
已经测试可以运行,欢迎拍砖。。。
posted on 2006-11-07 18:14
Vista
阅读(1652)
评论(0)
编辑
收藏
所属分类:
java基础
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
vista精神之--动态代理学习
vista精神之-dom4j读写xml文件
vista 精神之 - 面向对象篇
Copyright @ Vista
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster