一、Spring IoC容器相关概念
客户端对象
如果对象A需要引用对象B,那么A就是B的客户端对象。
Spring IoC容器
是一个提供IoC支持的轻量级容器,作为轻量级容器还支持IoC功能以外的支持。
IoC Service Provider
是一个抽象出来的概念,它可以指代任何将IoC场景中的业务对象绑定到一起的实现方式。它可以是一段代码,也可以是一组相关的类,甚至可以是比较通用的IoC框架或者IoC容器实现。
IoC模式
IoC是一种模式,即使不使用IoC容器开发,只用简单的代码也可以实现IoC模式。
二、Spring IoC容器类型分类
2.1、BeanFactory
2.1.1、概念
基础类型IoC容器,提供完整的IoC服务支持。如果没有特殊指定,默认采用延迟初始化策略( lazy-load)。只有当客户端对象需要访问容器中的某个受管对象的时候,才对该受管对象进行初始化以及依赖注入操作。 既然Spring框架提倡使用POJO,那么把每个业务对象看作一个JavaBean对象
2.1.2、BeanFactory的对象注册与依赖绑定方式
直接编码方式
BeanFactory接口:管理Bean的接口,只定义如何访问容器内管理的Bean的方法。(图书馆)
BeanDefinitionRegistry接口:该接口作用是Bean的注册和管理。(图书馆书架)
DefaultListableBeanFactory类:BeanFactory接口和BeanDefinitionRegistry接口的实现类。
BeanDefinition接口:负责保存对象的所有必要信息,对象的属性,构造方法等。当客户端(注册对象)向BeanFactory(IoC容器)请求相应的对象,BeanFactory会通过这些信息为客户端返回一个完备的对象实例。
XML文件方式
注解
component 英[k?m?p??n?nt]
美[k?m?po?n?nt]
n. 组成部分; 成分; 部件;
wired
英 [?wa??d] 美 [?wa??rd]
adj.
(与计算机系统)联网的, 连线的;(为使坚挺或坚固)内含金属丝的,夹丝的;兴奋的;紧张不安的;迷醉的
autowired
自动装配
@Component
public class FXNewsProvider {
@Autowired
private IFXNewsListener newsListener;
@Autowired
private IFXNewsPersister mewsPersister;
}
context:component-scan/会到指定的包( package)下面扫描标注有@Component的类,如果找到,则将它们添加到容器进行管理,并根据它们所标注的@Autowired为这些类注入符合条件的依赖对象。
2.2、ApplicationContext
概念
ApplicationContext所管理的对象,在该类型容器启动之后,默认全部初始化并绑定完成。所以,相对于BeanFactory来说, ApplicationContext要求更多的系统资源,同时,因为在启动时就完成所有初始化,容器启动时间较之BeanFactory也会长一些。
|