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久久婷婷国产综合亚洲
|
在线观看免费av网站
|
亚洲精品国产V片在线观看
|
亚洲精品一区二区三区四区乱码
|
jizz日本免费
|
精品免费国产一区二区
|
亚洲国产精品久久久久婷婷老年
|
精品在线观看免费
|
久久综合AV免费观看
|
亚洲精选在线观看
|
2019中文字幕免费电影在线播放
|
免费观看激色视频网站(性色)
|
亚洲国产精品人人做人人爱
|
亚洲一级毛片免费看
|
国产高清不卡免费视频
|
久久久久亚洲AV成人网人人网站
|
欧美亚洲国产SUV
|
亚洲一区二区免费视频
|
亚洲一级大黄大色毛片
|
国产精品黄页在线播放免费
|
亚洲另类小说图片
|
在线a人片天堂免费观看高清
|
亚洲国产香蕉碰碰人人
|
手机看黄av免费网址
|
亚洲欧洲日韩综合
|
无码A级毛片免费视频内谢
|
国产亚洲视频在线播放
|
深夜久久AAAAA级毛片免费看
|
国产jizzjizz免费看jizz
|
亚洲经典千人经典日产
|
成年美女黄网站18禁免费
|
亚洲丰满熟女一区二区v
|
暖暖免费高清日本中文
|
色窝窝亚洲AV网在线观看
|
成人免费淫片在线费观看
|
国产精品免费在线播放
|
亚洲人成人77777网站不卡
|
亚洲日韩VA无码中文字幕
|