flying
既然選擇了遠方,只有風雨兼程
BlogJava
|
首頁
| |
發(fā)新文章
|
聯系
|
聚合
|
管理
Java動態(tài)代理的一個例子
<struts2
權威指南
>
的一個例子,是用
JDK
動態(tài)代理來實現攔截器功能。
JDK
動態(tài)代理只能對實現了接口的實例來生成代理。
首先一個接口:
Dog.java
package
my;
public
interface
Dog
{
public
void
info();
}
實現接口的一個實例(DogImpl.java):
package
my;
public
class
DogImpl
implements
Dog
{
public
void
info()
{
System.out.println(
"
我就是我
"
);
}
}
定義一個攔截DogImpl類的實例(DogIntercepter.java):
package
my;
public
class
DogIntercepter
{
public
void
method1()
{
System.out.println(
"
攔截器的方法1
"
);
}
public
void
method2()
{
System.out.println(
"
攔截器的方法2
"
);
}
}
下面需要一個實現InvocationHanlder接口的代理類(ProxyHander.java):
package
my;
import
java.lang.reflect.Method;
import
java.lang.reflect.InvocationHandler;
public
class
ProxyHandler
implements
InvocationHandler
{
private
Object target;
DogIntercepter di
=
new
DogIntercepter();
public
Object invoke(Object proxy,Method method,Object[] args)
throws
Exception
{
Object result
=
null
;
if
(method.getName().equals(
"
info
"
))
{
di.method1();
result
=
method.invoke(target,args);
di.method2();
}
else
{
result
=
method.invoke(target,args);
}
return
result;
}
public
void
setTarget(Object o)
{
this
.target
=
o;
}
}
代理工廠類(MyProxyFactory.java),用來根據目標對象生成代理對象:
package
my;
import
java.lang.reflect.Proxy;
public
class
MyProxyFactory
{
public
static
Object getProxy(Object object)
{
ProxyHandler handler
=
new
ProxyHandler();
handler.setTarget(object);
return
Proxy.newProxyInstance(DogImpl.
class
.getClassLoader(),object.getClass().getInterfaces(),handler);
}
}
主程序(TestDog.java):
package
my;
public
class
TestDog
{
public
static
void
main(String[] args)
{
Dog targetObject
=
new
DogImpl();
Dog dog
=
null
;
Object proxy
=
MyProxyFactory.getProxy(targetObject);
if
(proxy
instanceof
Dog)
{
dog
=
(Dog)proxy;
}
dog.info();
}
}
ok.使用動態(tài)代理實現了攔截器的功能.
發(fā)表于 2008-10-02 20:42
gooogle
閱讀(192)
評論(0)
編輯
收藏
所屬分類:
JAVA
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
在struts2中利用ajax進行服務器驗證
struts2 客戶端驗證
struts2服務端驗證
Java動態(tài)代理的一個例子
Struts2的攔截器
Struts2文件的上傳
struts2類型轉換
用moodle構造課程學習網站
xml shema
初試Java對象的序列化
<
2008年10月
>
日
一
二
三
四
五
六
28
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
留言簿
(2)
給我留言
查看公開留言
查看私人留言
搜索
最新隨筆
1.?struts2 客戶端驗證
2.?Struts2整合Spring
3.?Java動態(tài)代理的一個例子
4.?Struts2的攔截器
5.?Struts2文件的上傳
6.?在D630上安裝了Ubuntu 8.04.1
7.?struts2類型轉換
8.?用moodle構造課程學習網站
9.?java虛擬機常用參數詳解
10.?初試Java RMI
最新評論
1.?111
111
--11
2.?re: 在struts2中利用ajax進行服務器驗證[未登錄]
啊啊
--啊
3.?re: 在struts2中利用ajax進行服務器驗證[未登錄]
謝謝你了。。。。。。
--皮皮
4.?re: struts2 客戶端驗證
為什么會拋出異常???
--永恒的興
5.?re: 用moodle構造課程學習網站
誰能給個汽修學習網站!
--..
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 gooogle
主站蜘蛛池模板:
成人妇女免费播放久久久
|
黄色毛片免费在线观看
|
99在线热视频只有精品免费
|
亚洲一区欧洲一区
|
18禁止观看免费私人影院
|
伊人久久精品亚洲午夜
|
亚洲一区二区三区高清视频
|
免费人成网上在线观看
|
国产精品亚洲高清一区二区
|
色天使亚洲综合一区二区
|
日韩精品无码人妻免费视频
|
国产大陆亚洲精品国产
|
青青视频观看免费99
|
中文日韩亚洲欧美制服
|
18禁美女裸体免费网站
|
亚洲熟妇中文字幕五十中出
|
毛片在线播放免费观看
|
亚洲精品在线免费看
|
免费高清av一区二区三区
|
麻豆va在线精品免费播放
|
国产亚洲av片在线观看播放
|
人人鲁免费播放视频人人香蕉
|
免费黄色网址入口
|
一个人看的在线免费视频
|
亚洲人成在线影院
|
在线观看人成网站深夜免费
|
一级做a爰片久久免费
|
亚洲最新视频在线观看
|
日韩视频免费在线观看
|
亚洲精品无码不卡在线播放
|
国产亚洲美女精品久久久
|
日本免费网址大全在线观看
|
免费无遮挡无码视频在线观看
|
亚洲成人在线电影
|
日本媚薬痉挛在线观看免费
|
a级毛片免费高清毛片视频
|
亚洲最大天堂无码精品区
|
亚洲永久精品ww47
|
四虎在线视频免费观看
|
欧洲人免费视频网站在线
|
精品视频免费在线
|