Spring IoC
重要概念
1、控制反转(Inversion of control):
控制反转是一种通过描述(在java中通过xml或者注解)并通过第三方去产生或获取特定对象的方式。
控制反转IoC(Inversion of Control)是说创建对象的控制权进行转移,以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到第三方,比如转移交给了IoC容器,它就是一个专门用来创建对象的工厂,你要什么对象,它就给你什么对象,有了 IoC容器,依赖关系就变了,原先的依赖关系就没了,它们都依赖IoC容器了,通过IoC容器来建立它们之间的关系。
控制反转就是获取依赖对象的方式反转了,正常情况下由应用程序主动创建依赖对象,实现对依赖对象的管理,创建依赖对象的控制权在应用程序手中,应用程序需要什么对象,就主动去创建这个对象,这是正转的情况。实现控制反转之后,由IoC容器实现依赖对象的创建和管理,应用程序需要什么样的对象,IoC容器就根据需求创建这个对象,应用程序只是被动地接收和使用这个对象,依赖对象的创建管理控制权由应用程序转移给了IoC容器,这就实现了控制反转。
2、依赖注入(Dependency Injection):
控制反转的另一种表述方式,即让调用类对某一接口的实现类的依赖关系由第三方(容器或协作类)注入,用以移除调用类对某一接口实现类的依赖。
3、Beanfacory 和ApplicationContext:
Spring通过配置文件描述Bean以及Bean之间的依赖关系,利用Java语言的反射功能实例化Bean并建立起Bean之间的依赖关系。Spring的IoC容器在完成这些底层工作的基础上,提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、资源装载等服务。
Beanfacory 是Spring框架最核心的接口,提供了高级IoC的配置机制。Beanfacory使管理不同的java对象成为可能,ApplicationContext(应用上下文)建立在Beanfacory基础之上,提供更多面向引用的功能。Beanfacory 即为IoC容器,由于ApplicationContext建立在Beanfacory,我们也称ApplicationContext为IoC容器。
IoC容器主要功能
1、动态创建、注入依赖对象。
2、管理对象生命周期。
3、映射依赖关系。
实现IoC容器的方式:
1、依赖查找。
2、依赖注入。
依赖注入的三种方式:1、构造器注入。2、setter注入。3、接口注入。
注入和装配的区别:
注入是实例化一个类时对类中各个参数的赋值方式。
装配是定义bean以及bean之间关系。
- 装配bean概述:
1、基于xml中配置。
2、基于注解中配置。