J2EE Programming Lectures
Spring 介绍
J2EE Programming Lectures copyright © 2008, MATHEWS MA
J2EE Programming Lectures
Spring 的优点
管理中间层的 business objects
提供中间层服务
管理 Singleton 的 life-cycle
Single xml configuration format
鼓励 programming by interface
Applications may not depend(tied) on
Spring Framework with careful design
组件更容易测试
J2EE Programming Lectures copyright © 2008, MATHEWS MA
J2EE Programming Lectures
Spring 在 J2EE 中的定位
JSP / JSTL
Struts Action / View Helper
Service Façade / Business Delegate
Business Services and Components
DAO
Hibernate / JDBC
S
t
r
u
t
s
S
p
r
i
n
g
i
D
o
m
a
n
O
b
j
e
c
t
s
J2EE Programming Lectures copyright © 2008, MATHEWS MA
J2EE Programming Lectures
Inversion of Control (IoC)
J2EE Programming Lectures copyright © 2008, MATHEWS MA
J2EE Programming Lectures
IoC & DI
IoC ,就是由容器控制程序之间的关系,而非传统实现中
,由程序代码直接操控。这也就是所谓“控制反转”的概念所
在:控制权由应用代码中转到了外部容器,控制权的转移,是
所谓反转。
大师级人物 Martin Fowler 的一篇经典文章 《 Inversion
of Control Containers and the Dependency Injection
pattern 》为 IoC 正名,他认为:控制反转,反转的是依赖
对象的获取方式。因此 IoC 又获得了一个新的名字: 依赖注
入 ( Dependency Injection )。
J2EE Programming Lectures copyright © 2008, MATHEWS MA
J2EE Programming Lectures
现实中的例子
J2EE Programming Lectures copyright © 2008, MATHEWS MA
J2EE Programming Lectures
三个设备都有一个共同点,都支持 USB 接口。
笔记本电脑与外围存储设备通过预先指定的一个
接口( USB )相连
在运行时(系统开机, USB 设备加载)由容器(
Windows 操作系统)将依赖关系(笔记本依赖
USB 设备进行数据存取)注入到组件中
( Windows 文件访问组件)
J2EE Programming Lectures copyright © 2008, MATHEWS MA
J2EE Programming Lectures
Dependency Injection (DI)
—— 另一个例子
J2EE Programming Lectures copyright © 2008, MATHEWS MA