wangflood
精心維護一個技術blog,為了工作,也是愛好。
BlogJava
::
首頁
::
聯系
::
聚合
::
管理
14 Posts :: 19 Stories :: 8 Comments :: 0 Trackbacks
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(2)
給我留言
查看公開留言
查看私人留言
我參與的團隊
隨筆檔案
2011年4月 (11)
2011年3月 (1)
2011年1月 (1)
2010年12月 (2)
文章分類
android
C/C++
DB
J2EE/SSH(3)
java(11)
linux
python
ruby
創業(2)
嵌入
數算模業
求職
隨筆(2)
文章檔案
2011年3月 (9)
2010年12月 (5)
2010年11月 (4)
收藏夾
業余(4)
技術(1)
搜索
最新評論
1.?re: 關于saveOrUpdate(Object obj)方法
同求!!
我也是一直就先取出來,然后set回去的,有好方法記得分享哈~~
--竹木一
2.?re: List的toArray方法
評論內容較長,點擊標題查看
--Spartan
3.?re: List的toArray方法
評論內容較長,點擊標題查看
--xp
4.?re: List的toArray方法
評論內容較長,點擊標題查看
--xp
5.?re: jquery復習(四)
寫的太多了,你就不會精煉一點嗎?
--wshsdlau
閱讀排行榜
1.?《菊與刀》讀后感(2339)
2.?jquey復習(三)(1999)
3.?jquery復習(四)(1801)
4.?jquey復習(一)(389)
5.?《食物是最好的醫藥》讀后感(388)
評論排行榜
1.?jquery復習(四)(2)
2.?jquey復習(三)(1)
3.?56789+-*/() 2000(1)
4.?初涉C#,懷念java(0)
5.?回首2010,展望2011(0)
spring IOC模擬實現
spring IOC達到松耦合的目的,便于測試。我很喜歡"spirng容器"的說法,spring根據讀取bean.xml,再用java反射機制,組合一些類,完成程序。其實,實現起來也不太難。不信你看。
模仿spring,BeanFactory
package
com.wang.spring;
public
interface
BeanFactory
{
public
Object getBean(String name);
}
主要類:ClassPathXmlApplicationContext,當然spring的這個類里有國際化等功能實現,這里就簡了。
package
com.wang.spring;
import
java.lang.reflect.Method;
import
java.util.HashMap;
import
java.util.List;
import
java.util.Map;
import
org.jdom.Document;
import
org.jdom.Element;
import
org.jdom.input.SAXBuilder;
import
wang.spring.dao.UserDao;
import
wang.spring.dao.impl.UserDaoImpl;
public
class
ClassPathXmlApplicationContext
implements
BeanFactory
{
private
Map
<
String, Object
>
beans
=
new
HashMap
<
String, Object
>
();
//
IOC Inverse of Control DI Dependency Injection
public
ClassPathXmlApplicationContext()
throws
Exception
{
SAXBuilder sb
=
new
SAXBuilder();
Document doc
=
sb.build(
this
.getClass().getClassLoader()
.getResourceAsStream(
"
beans.xml
"
));
//
構造文檔對象
Element root
=
doc.getRootElement();
//
獲取根元素HD
List list
=
root.getChildren(
"
bean
"
);
//
取名字為disk的所有元素
for
(
int
i
=
0
; i
<
list.size(); i
++
)
{
Element element
=
(Element) list.get(i);
String id
=
element.getAttributeValue(
"
id
"
);
String clazz
=
element.getAttributeValue(
"
class
"
);
Object o
=
Class.forName(clazz).newInstance();
System.out.println(id);
System.out.println(clazz);
beans.put(id, o);
//
i=1 new UserDaoImpl();
for
(Element propertyElement : (List
<
Element
>
) element
.getChildren(
"
property
"
))
{
String name
=
propertyElement.getAttributeValue(
"
name
"
);
//
得到userDAO
String bean
=
propertyElement.getAttributeValue(
"
bean
"
);
//
u
//
相當于 UserDao u = new UserDaoImpl();
Object beanObject
=
beans.get(bean);
//
UserDAOImpl instance
String methodName
=
"
set
"
+
name.substring(
0
,
1
).toUpperCase()
+
name.substring(
1
);
System.out.println(
"
method name =
"
+
methodName);
Method m
=
o.getClass().getMethod(methodName,
beanObject.getClass().getInterfaces()[
0
]);
m.invoke(o, beanObject);
}
}
}
public
Object getBean(String id)
{
return
beans.get(id);
}
}
posted on 2010-11-14 09:46
wangflood
閱讀(281)
評論(0)
編輯
收藏
所屬分類:
J2EE/SSH
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
關于saveOrUpdate(Object obj)方法
spring IOC模擬實現
jdom試驗
Copyright @ wangflood
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster
主站蜘蛛池模板:
中文无码成人免费视频在线观看
|
国产亚洲精品欧洲在线观看
|
久久国产乱子伦精品免费看
|
亚洲无线一二三四区手机
|
美女又黄又免费的视频
|
国产在线观看免费不卡
|
自拍偷自拍亚洲精品播放
|
国产午夜影视大全免费观看
|
看成年女人免费午夜视频
|
免费观看国产小粉嫩喷水
|
在线观看亚洲电影
|
亚洲AV无码之日韩精品
|
九九九国产精品成人免费视频
|
亚洲成片观看四虎永久
|
eeuss免费天堂影院
|
国产亚洲一区二区精品
|
9277手机在线视频观看免费
|
亚洲人成影院在线高清
|
成年女人免费视频播放体验区
|
亚洲AV无码一区二区三区性色
|
免费大片黄手机在线观看
|
黄 色一级 成 人网站免费
|
亚洲AV无码一区二区乱子伦
|
最近中文字幕完整版免费高清
|
亚洲国产最大av
|
免费观看国产小粉嫩喷水
|
丝袜捆绑调教视频免费区
|
久久久久亚洲AV成人片
|
成人黄动漫画免费网站视频
|
亚洲精品蜜桃久久久久久
|
全免费a级毛片免费看
|
亚洲国产成人在线视频
|
在线日韩av永久免费观看
|
a毛片成人免费全部播放
|
久久亚洲日韩看片无码
|
日本牲交大片免费观看
|
a级毛片免费全部播放
|
亚洲一级特黄特黄的大片
|
亚洲午夜AV无码专区在线播放
|
1000部拍拍拍18勿入免费视频软件
|
国产精品成人免费福利
|