青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
隨筆:15 文章:206 評論:35 引用:0
fenglin
創新、創意、挑戰
C++博客
首頁
發新隨筆
發新文章
聯系
聚合
管理
Spring3_模擬Spring框架工作原理
用戶模型類User.java
package
com.bebig.model;
public
class
User
{
private
String username;
private
String password;
public
String getPassword()
{
return
password;
}
public
String getUsername()
{
return
username;
}
public
void
setPassword(String password)
{
this
.password
=
password;
}
public
void
setUsername(String username)
{
this
.username
=
username;
}
}
數據訪問接口UserDAO.java
package
com.bebig.dao;
import
com.bebig.model.User;
//
Data Access Object數據訪問接口
public
interface
UserDAO
{
public
void
save(User u);
}
數據訪問接口的實現UserDAOImpl.java
package
com.bebig.dao.impl;
import
com.bebig.dao.UserDAO;
import
com.bebig.model.User;
//
數據訪問接口的實現
public
class
UserDAOImpl
implements
UserDAO
{
@Override
public
void
save(User u)
{
System.out.println(
"
a user saved!
"
);
}
}
邏輯業務層UserService.java
package
com.bebig.service;
import
com.bebig.dao.UserDAO;
import
com.bebig.model.User;
//
邏輯業務層
public
class
UserService
{
private
UserDAO userDAO;
public
void
add(User u)
{
userDAO.save(u);
}
public
void
setUserDAO(UserDAO userDAO)
{
this
.userDAO
=
userDAO;
}
public
UserDAO getUserDAO()
{
return
userDAO;
}
}
Spring Bean工廠接口BeanFactory.java
package
com.bebig.spring;
public
interface
BeanFactory
{
public
Object getBean(String name);
}
Bean工廠實現方法ClassPathXmlApplicationContext.java
package
com.bebig.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;
//
用JDOM解析bean的配置文件
public
class
ClassPathXmlApplicationContext
implements
BeanFactory
{
private
Map
<
String,Object
>
beans
=
new
HashMap
<
String,Object
>
();
public
ClassPathXmlApplicationContext()
throws
Exception
{
SAXBuilder sb
=
new
SAXBuilder();
Document doc
=
sb.build(
this
.getClass().getClassLoader().getResourceAsStream(
"
beans.xml
"
)).getDocument();
Element root
=
doc.getRootElement();
List list
=
root.getChildren(
"
bean
"
);
for
(
int
i
=
0
;i
<
list.size();i
++
)
{
Element element
=
(Element) list.get(i);
String id
=
element.getAttributeValue(
"
id
"
);
String clazz
=
element.getAttributeValue(
"
class
"
);
System.out.println(id
+
"
:
"
+
clazz);
Object o
=
Class.forName(clazz).newInstance();
beans.put(id, o);
for
(Element propertyElement : (List
<
Element
>
) element.getChildren(
"
property
"
))
{
String name
=
propertyElement.getAttributeValue(
"
name
"
);
String bean
=
propertyElement.getAttributeValue(
"
bean
"
);
Object beanObject
=
beans.get(bean);
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);
}
}
}
@Override
public
Object getBean(String name)
{
return
beans.get(name);
}
}
bean配置文件beans.xml
<
beans
>
<
bean
id
="u"
class
="com.bebig.dao.impl.UserDAOImpl"
/>
<
bean
id
="userService"
class
="com.bebig.service.UserService"
>
<
property
name
="userDAO"
bean
="u"
/>
</
bean
>
</
beans
>
測試用例:UserServiceTest.java
package
com.bebig.service;
import
org.junit.Test;
import
com.bebig.model.User;
import
com.bebig.spring.BeanFactory;
import
com.bebig.spring.ClassPathXmlApplicationContext;
public
class
UserServiceTest
{
@Test
public
void
testAdd()
throws
Exception
{
BeanFactory factory
=
new
ClassPathXmlApplicationContext();
UserService service
=
(UserService) factory.getBean(
"
userService
"
);
User u
=
new
User();
service.add(u);
}
}
模擬了Spring的Bean工廠,通過反射獲取相應配置實體類,并執行其方法。
發表于 2010-10-16 23:05
風林
閱讀(464)
評論(0)
編輯
收藏
引用
所屬分類:
JAVA
、
Spring
只有注冊用戶
登錄
后才能發表評論。
相關文章:
[轉]java編程中'為了性能'一些盡量做到的地方
JAVAC命令行錯誤
Java基礎_Collection接口下的子類存儲特性
Android_常用控件使用
Android_Activity&Intent&Layout
Integer自動裝箱、拆箱問題
自定義比較器、排序
JDBC操作實例
常用數據庫的JDBC連接代碼
[轉]J2SE_內部類
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
CALENDER
<
2025年11月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
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
1
2
3
4
5
6
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
給我留言
查看公開留言
查看私人留言
隨筆分類
jBPM
(rss)
隨筆檔案
2011年7月 (1)
2011年4月 (1)
2011年2月 (1)
2010年11月 (1)
2010年10月 (2)
2010年9月 (3)
2010年8月 (4)
2010年7月 (2)
文章分類
AJAX(2)
(rss)
Android(2)
(rss)
C#(20)
(rss)
C++(6)
(rss)
ckeditor&ckfinder(1)
(rss)
CSS
(rss)
Delphi(2)
(rss)
Hibernate(39)
(rss)
JAVA(95)
(rss)
jQuery(1)
(rss)
JSP(9)
(rss)
Maven(1)
(rss)
MySQL(4)
(rss)
OOP(1)
(rss)
Python(42)
(rss)
Spring(31)
(rss)
SQL Server(4)
(rss)
Struts2(35)
(rss)
SVN(1)
(rss)
Tomcat(1)
(rss)
Ubuntu(1)
(rss)
軟件加解密技術
(rss)
雜文(1)
(rss)
文章檔案
2011年8月 (1)
2011年7月 (3)
2011年6月 (19)
2011年5月 (2)
2011年4月 (1)
2011年2月 (1)
2010年12月 (2)
2010年11月 (21)
2010年10月 (67)
2010年9月 (48)
2010年8月 (37)
2010年7月 (4)
新聞檔案
2010年7月 (1)
相冊
CSS
Hibernate
搜索
最新評論
1.?re: Struts2_三種傳參數方法
方式的發生
--阿飛史蒂夫
2.?re: 在Win7上搭建JSP開發環境
評論內容較長,點擊標題查看
--鄒
3.?re: ckeditor&ckfinder&s2sh集成
評論內容較長,點擊標題查看
--庸幾何
4.?re: 在Win7上搭建JSP開發環境
下個 myeclipse@lou
--孫毅
5.?re: 在Win7上搭建JSP開發環境
@lou
運行 -cmd 找到startup.bat 在java 環境中運行
--孫毅
閱讀排行榜
1.?開始找Java開發類工作了(521)
2.?一流、二流、三流(461)
3.?給一家公司的軟件做加密方案(452)
4.?周一到周五都得出差,周末才能回(433)
5.?從WIN32開發轉型到WEB開發(393)
評論排行榜
1.?周一到周五都得出差,周末才能回(2)
2.?給力2011(2)
3.?最近工作有點忙(0)
4.?生活(0)
5.?在博客園開博了(0)
Powered By:
博客園
模板提供
:
滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
国产欧美精品在线观看
|
一本一道久久综合狠狠老精东影业
|
亚洲精品在线视频
|
精品成人一区二区三区四区
|
亚洲国产乱码最新视频
|
久久久99爱
|
久久国内精品自在自线400部
|
亚洲精品之草原avav久久
|
欧美91大片
|
欧美成人亚洲成人日韩成人
|
在线看片欧美
|
一本久道综合久久精品
|
国产精品观看
|
欧美成在线视频
|
国产日韩欧美制服另类
|
亚洲精品国产精品国产自
|
欧美精品一区二区三区在线看午夜
|
伊人久久久大香线蕉综合直播
|
欧美777四色影视在线
|
欧美成人免费全部
|
亚洲精选视频免费看
|
亚洲精品一区中文
|
欧美电影免费观看网站
|
午夜精品视频在线
|
亚洲视频二区
|
亚洲在线中文字幕
|
亚洲激情视频网站
|
99视频国产精品免费观看
|
久久久午夜精品
|
国产日韩精品一区二区浪潮av
|
99精品热视频只有精品10
|
好看的av在线不卡观看
|
亚洲性感美女99在线
|
欧美一区二区播放
|
最新亚洲激情
|
亚洲图片欧洲图片av
|
欧美成人亚洲成人日韩成人
|
欧美日韩一区二区欧美激情
|
亚洲一区综合
|
欧美精品久久久久久久久老牛影院
|
亚洲三级毛片
|
狠狠操狠狠色综合网
|
亚洲深夜激情
|
亚洲欧美电影在线观看
|
欧美日韩xxxxx
|
欧美国产日韩一区二区三区
|
国内揄拍国内精品少妇国语
|
亚洲一区高清
|
亚洲图片你懂的
|
欧美日韩久久
|
亚洲人成毛片在线播放
|
尤妮丝一区二区裸体视频
|
久久精品国产69国产精品亚洲
|
午夜精品亚洲
|
国产精品免费在线
|
亚洲欧美在线一区二区
|
亚洲视频999
|
久久男人av资源网站
|
久久亚洲精品视频
|
国产精品免费在线
|
欧美一区二区三区四区在线观看
|
久久综合色天天久久综合图片
|
久久九九国产精品
|
国产色视频一区
|
亚洲综合国产
|
美国十次成人
|
亚洲日本视频
|
欧美精品自拍偷拍动漫精品
|
一本一本a久久
|
亚洲视频日本
|
国产乱码精品一区二区三区不卡
|
欧美一区二区视频网站
|
美女任你摸久久
|
欧美日韩第一区日日骚
|
日韩一区二区久久
|
午夜国产不卡在线观看视频
|
国产精品国码视频
|
欧美在线观看天堂一区二区三区
|
久久在线免费
|
91久久国产综合久久91精品网站
|
欧美二区视频
|
亚洲人成网在线播放
|
一区二区三区精密机械公司
|
国产精品网站在线观看
|
欧美在线视频全部完
|
免费成人小视频
|
一本色道婷婷久久欧美
|
国产精品久久一级
|
久久精品成人欧美大片古装
|
亚洲福利视频网
|
亚洲一区三区视频在线观看
|
一区二区三区四区在线
|
久久精品国产久精国产一老狼
|
亚洲高清视频一区二区
|
欧美日韩国产一区二区三区地区
|
亚洲一区二区成人
|
欧美77777
|
亚洲综合第一页
|
影音先锋亚洲一区
|
国产精品成人观看视频免费
|
久久精品国产久精国产爱
|
亚洲精品国产精品国自产观看
|
久久精品毛片
|
99日韩精品
|
在线成人h网
|
国产精品久久久亚洲一区
|
麻豆精品91
|
午夜精品久久久久久久久久久久久
|
欧美福利在线观看
|
久久激情视频
|
一区二区久久久久
|
又紧又大又爽精品一区二区
|
欧美性做爰猛烈叫床潮
|
久久久久九九九九
|
亚洲一区中文
|
99国产精品久久久久久久成人热
|
国产亚洲美州欧州综合国
|
欧美日韩国产黄
|
欧美刺激午夜性久久久久久久
|
午夜精品久久久久久久男人的天堂
|
最新精品在线
|
亚洲国产精品一区二区第四页av
|
久久高清一区
|
亚洲欧美日韩在线
|
一本色道久久综合狠狠躁篇的优点
|
国产一区二区剧情av在线
|
国产精品毛片
|
欧美日韩精品一本二本三本
|
麻豆成人小视频
|
久久九九精品
|
欧美在线免费播放
|
亚洲欧美国产毛片在线
|
亚洲午夜精品久久久久久浪潮
|
亚洲精品日本
|
欧美激情中文不卡
|
亚洲电影天堂av
|
亚洲高清三级视频
|
欧美韩日高清
|
亚洲高清免费视频
|
亚洲高清影视
|
亚洲激情中文1区
|
欧美激情一区二区三区成人
|
狠狠色香婷婷久久亚洲精品
|
国产九区一区在线
|
欧美日韩久久久久久
|
欧美va亚洲va日韩∨a综合色
|
欧美一区二区三区免费观看视频
|
亚洲先锋成人
|
亚洲精华国产欧美
|
亚洲第一色在线
|
亚洲国产女人aaa毛片在线
|
欧美大秀在线观看
|
亚洲精品国产日韩
|
亚洲精品孕妇
|
一区二区三区高清不卡
|
亚洲在线观看视频网站
|
亚洲欧美日韩国产成人
|
午夜亚洲性色福利视频
|
久久av一区
|
你懂的视频欧美
|
欧美日韩三区四区
|
国产精品国产三级国产专区53
|
欧美国产日韩二区
|
亚洲国产一成人久久精品
|
最新日韩在线
|
亚洲欧美日韩国产成人
|
久久精品国产综合
|
欧美国产精品中文字幕
|
欧美性一区二区
|
国产日韩在线一区二区三区
|
伊人精品成人久久综合软件
|
亚洲欧洲在线播放
|
亚洲一二区在线
|
欧美freesex交免费视频
|
亚洲高清一二三区
|
亚洲一区二区在线播放
|
麻豆精品视频
|
国产精品成人aaaaa网站
|
一区国产精品
|
一区二区三区精品久久久
|
午夜日韩福利
|
亚洲国产精品久久人人爱蜜臀
|
夜夜嗨av色一区二区不卡
|
久久精品人人做人人爽
|
欧美日韩精品是欧美日韩精品
|
国产乱人伦精品一区二区
|
亚洲精品在线视频
|
久久久国产视频91
|
99综合视频
|
欧美1区免费
|
国产视频自拍一区
|
日韩午夜精品
|
美女网站久久
|
亚洲欧美国产高清
|
欧美日韩www
|
亚洲啪啪91
|
久久网站免费
|
亚洲欧美另类国产
|
欧美日韩在线另类
|
亚洲日产国产精品
|