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无码国产情品久久
|
黄色大片免费网站
|
亚洲国产电影av在线网址
|
香蕉免费看一区二区三区
|
国产成人亚洲综合无码精品
|
在线看片免费人成视频福利
|
亚洲av女电影网
|
2021久久精品免费观看
|
亚洲乱码中文字幕在线
|
亚洲 综合 国产 欧洲 丝袜
|
黄视频在线观看免费
|
久久亚洲精品中文字幕无码
|
69免费视频大片
|
91在线亚洲综合在线
|
国产一区二区三区在线免费观看
|
亚洲综合精品香蕉久久网97
|
99re这里有免费视频精品
|
亚洲性69影院在线观看
|
好男人视频社区精品免费
|
免费无码午夜福利片
|
久久精品夜色国产亚洲av
|
曰曰鲁夜夜免费播放视频
|
国产偷国产偷亚洲高清在线
|
国产亚洲精品AA片在线观看不加载
|
免费av一区二区三区
|
亚洲综合一区无码精品
|
亚洲午夜无码片在线观看影院猛
|
久久aⅴ免费观看
|
亚洲成在人线aⅴ免费毛片
|
久久久久亚洲精品中文字幕
|
精品一区二区三区无码免费视频
|
亚洲日韩亚洲另类激情文学
|
久久久久国产成人精品亚洲午夜
|
aⅴ免费在线观看
|
一二三区免费视频
|
国产精品高清视亚洲一区二区
|
亚洲熟妇无码另类久久久
|
免费无码肉片在线观看
|