对spring的使用也有很长的一段时间了,但感觉对spring还是知之甚少。今天突然有了翻译spring开发文档的想法,以后有空将不定时翻译。当然,本淫英语也是渣渣,翻译难免有歧义或是有错误的地方,还希望大家指出,小弟定使出吃奶的劲改正。翻译基于4.1.1文档的关键章节,荆轲刺秦王,与君共勉~
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
本章涵盖了spring框架的的反转控制(IoC)1 实现原理。IoC和依赖注入一样被人所知。这是一个通过对象定义他们的依赖性的过程。也就是说,依赖被注入到对象中。只有通过构造函数的参数、工厂方法的参数,或在对象被构造或从工厂模式返回后设定的属性。容器在创建bean的同时会注入他们的依赖关系。这个过程从根本上说是逆向的,因此命名为反转控制,bean自己直接利用类构建其依赖的实例化或定位,或者是类似服务定位器模式的技巧。
org.springframework.beans 和 org.springframework.context 是IoC容器的基础。BeanFactory 接口提供了一种先进的配置机制,这种配置机制可以管理任何类型的对象。ApplicationContext 是BeanFactory的子接口,他对spring的AOP特性进行了简单的集成。信息资源的处理(使用的国际化),即使是出版物,应用层的语境,比如在Web应用中使用WebApplicationContext。
简而言之,BeanFactory提供了配置机制和基础的功能,ApplicationContext 则提供更多的企业特性的功能。ApplicationContex 是 BeanFactory 的一个完整的超集,并且在spring IoC描述中的这个章节重点介绍。更多关于使用 BeanFactory 代替ApplicationContext 的信息,参考5.16章节 “The BeanFactory”
在spring中,对象构成应用的主干,由spring 的IoC容器进行管理,我们称之为bean 。一个bean就是一个被实例化的,组合的,有 spring IoC容器管理的对象。从另外一个方面讲,bean只是应用中众多对象的一个。beans和他们的依赖关系,反映在配置元数据使用的容器中。