青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
隨筆: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:
博客園
模板提供
:
滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
欧美激情按摩在线
|
久久综合狠狠综合久久综青草
|
欧美精品免费视频
|
久久婷婷国产综合国色天香
|
欧美一区二区黄色
|
久久久久久久性
|
美脚丝袜一区二区三区在线观看
|
日韩一区二区精品葵司在线
|
亚洲国产日本
|
欧美激情第1页
|
亚洲电影免费在线观看
|
亚洲国产成人在线视频
|
99综合精品
|
欧美在线三区
|
欧美成人官网二区
|
欧美性大战久久久久久久
|
国产精品乱码久久久久久
|
国产午夜精品视频免费不卡69堂
|
国产资源精品在线观看
|
亚洲精品男同
|
午夜久久久久久
|
欧美成人精品1314www
|
亚洲精品社区
|
欧美一区二区三区另类
|
欧美精品福利视频
|
国产网站欧美日韩免费精品在线观看
|
国产精品久久久久久久久久尿
|
国产精品一区二区三区乱码
|
亚洲电影免费在线观看
|
亚洲淫片在线视频
|
欧美成人精品在线观看
|
中国成人亚色综合网站
|
美国十次成人
|
国内揄拍国内精品少妇国语
|
艳妇臀荡乳欲伦亚洲一区
|
老牛国产精品一区的观看方式
|
亚洲最黄网站
|
欧美va天堂
|
极品少妇一区二区三区
|
亚洲欧美三级在线
|
91久久中文字幕
|
久久久www成人免费无遮挡大片
|
欧美日韩在线免费观看
|
亚洲国产成人久久综合
|
国产精品va在线
|
亚洲国产高清一区
|
亚洲欧美一区二区在线观看
|
欧美成年人网
|
国产亚洲va综合人人澡精品
|
99视频精品全部免费在线
|
久久免费视频在线观看
|
亚洲精品在线免费
|
久久亚洲私人国产精品va
|
国产精品三级久久久久久电影
|
亚洲精品国产欧美
|
欧美粗暴jizz性欧美20
|
久久成人这里只有精品
|
国产精品爽黄69
|
亚洲欧美影音先锋
|
99国产精品视频免费观看
|
欧美成人亚洲成人
|
亚洲欧洲视频在线
|
欧美成人午夜激情视频
|
久久精品亚洲精品
|
激情校园亚洲
|
久久午夜影视
|
久久久久久久综合日本
|
夜夜精品视频
|
国产精品久久中文
|
午夜久久久久久
|
亚洲一级片在线看
|
国产精品日韩精品欧美精品
|
亚洲制服欧美中文字幕中文字幕
|
亚洲精美视频
|
欧美日韩精品二区
|
在线亚洲观看
|
亚洲曰本av电影
|
国产区亚洲区欧美区
|
久久国产视频网站
|
久久精品国产亚洲a
|
亚洲国产精品久久久久秋霞蜜臀
|
欧美成人免费一级人片100
|
奶水喷射视频一区
|
av成人免费观看
|
一区二区三区日韩
|
国产麻豆日韩
|
免费日本视频一区
|
欧美国产激情二区三区
|
中日韩美女免费视频网站在线观看
|
亚洲精品在线电影
|
国产精品五月天
|
麻豆免费精品视频
|
欧美啪啪一区
|
久久国产福利国产秒拍
|
久久全国免费视频
|
欧美精品精品一区
|
欧美一区二区日韩
|
久久人人97超碰人人澡爱香蕉
|
亚洲日本激情
|
亚洲欧美日韩综合一区
|
亚洲大片在线观看
|
一本色道久久综合精品竹菊
|
国产一区二区日韩
|
亚洲激情视频
|
国产嫩草影院久久久久
|
免费不卡亚洲欧美
|
另类国产ts人妖高潮视频
|
一区二区三区回区在观看免费视频
|
亚洲精品国产视频
|
亚洲视频欧美视频
|
…久久精品99久久香蕉国产
|
久久精品国产亚洲一区二区
|
亚洲经典视频在线观看
|
亚洲午夜国产一区99re久久
|
一区二区亚洲精品国产
|
一本高清dvd不卡在线观看
|
精品成人一区二区三区四区
|
99在线观看免费视频精品观看
|
精品1区2区3区4区
|
亚洲视频第一页
|
91久久精品日日躁夜夜躁国产
|
亚洲视频免费在线观看
|
亚洲黄色av
|
久久狠狠婷婷
|
香蕉久久夜色精品国产使用方法
|
欧美国产日韩一区
|
另类激情亚洲
|
国产日韩精品入口
|
亚洲视频在线观看视频
|
亚洲三级毛片
|
久久久久久一区二区
|
亚欧成人在线
|
欧美亚洲第一区
|
一区二区三区欧美视频
|
夜夜精品视频一区二区
|
可以免费看不卡的av网站
|
久久久五月婷婷
|
韩国三级电影一区二区
|
午夜精品www
|
欧美一区二区三区在线观看
|
欧美系列一区
|
亚洲一级电影
|
久久精品综合一区
|
国内精品**久久毛片app
|
午夜国产精品视频免费体验区
|
性色av一区二区怡红
|
国产日韩精品在线观看
|
午夜精品视频在线
|
精品69视频一区二区三区
|
久久九九久精品国产免费直播
|
久久久精品国产免费观看同学
|
国产精品综合
|
欧美一级片一区
|
久久久久久久综合色一本
|
国内精品久久久久伊人av
|
久久国产欧美
|
欧美不卡在线
|
夜夜精品视频一区二区
|
欧美三级小说
|
亚洲男人av电影
|
久久国产精品一区二区三区
|
国产视频观看一区
|
久久免费精品视频
|
亚洲黄色在线看
|
国产女人精品视频
|
女主播福利一区
|
亚洲美女精品一区
|
亚洲伦理在线免费看
|
国产视频在线一区二区
|
久久国产主播精品
|
亚洲欧洲一区二区三区久久
|
洋洋av久久久久久久一区
|
国产精品免费网站在线观看
|
欧美在线亚洲一区
|
亚洲福利在线观看
|
亚洲女同精品视频
|
在线观看亚洲a
|
欧美新色视频
|
久久这里只有
|
一二三区精品
|
蜜臀av性久久久久蜜臀aⅴ
|
日韩视频免费观看高清完整版
|
国产精品红桃
|
牛人盗摄一区二区三区视频
|
亚洲视频一区在线
|
欧美mv日韩mv国产网站app
|
这里只有精品丝袜
|
亚洲国产人成综合网站
|
欧美网站在线
|
蜜桃伊人久久
|
性欧美videos另类喷潮
|
亚洲国产综合在线
|
久久精品在线播放
|
亚洲一区精彩视频
|
最新高清无码专区
|
国产亚洲激情在线
|
欧美色另类天堂2015
|
欧美成年人视频
|
久久精品论坛
|
午夜精品影院在线观看
|