您的位置:首页 > 编程语言 > Java开发

spring技术手册阅读笔记(一 ) 认识IOC

2006-08-30 17:38 253 查看
苦苦等待,终于见到台湾java专家林信良的著作 《Spring 技术手册》,通宵夜读后,我认为目前最易懂的Spring书籍.
Spring真正的精华是它的Ioc模式实现的BeanFactory,BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
其实IOC有了两种类型,Dependency Injection and Dependency Lookup.Dependency Lookup是传统的使用模式,经常用于EJB的ServiceLocator,他的缺点显而易见,你的类必须依赖于容器的接口和类,
难于单元测试,不能单元测试的程序不是好程序.而Dependency Injection实现组件间关系从程序内部提到外部容器来管理。也就是说由容器在运行期将组件间的某种依赖关系动态的注入组件中。
控制程序间关系的实现交给了外部的容器来完成。即常说的好莱坞原则“Don't call us, we'll call you”。
Spring 设计的核心是 org.springframework.beans 包,它的设计目标是与 POJO一起使用。这个包不是由用户直接使用,而是由服务器将其用作其他多数功能的底层中介。
最高级抽象是 BeanFactory 接口,它是工厂设计模式的实现,允许通过名称创建和检索对象。BeanFactory 也可以管理对象之间的关系。
BeanFactory 支持两个对象模型。
单态 模型提供了具有特定名称的对象的共享实例,可以在查询时对其进行检索。Singleton 是默认的也是最常用的对象模型。对于无状态服务对象很理想。
原型 模型确保每次检索都会创建单独的对象。在每个用户都需要自己的对象时,原型模型最适合。
bean 工厂的概念是 Spring 作为 IOC 容器的基础。IOC 将处理事情的责任从应用程序代码转移到框架。Spring 框架使用 JavaBean 属性和配置数据来指出必须设置的依赖关系.
ApplicationContext是BeanFactory的子接口,他有3个比较重要的实现,ClassPathXmlApplicationContext,FileSystemXmlApplicationContex和XmlWebApplicationContext.
ClassPathXmlApplicationContext classpath读取xml文件,FileSystemXmlApplicationContex 指定路径读取xml文件,这两个一般用于单元测试,
XmlWebApplicationContext从web应用读取,通常用于非spring环境调用spring的组件,例如最早的struts调用spring的bean. 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息