springIoc

1、Ioc(Inverse of control,控制反转)  控制:指对象的控制权 反转:控制权从调用类中移除,由spring容器装配。是生成类对象的工作。

2、Ioc类型:构造函数注入;属性注入;接口注入

3、resource资源访问,配置文件等

4、BeanFactory和ApplicationContext

BeanFactory:是spring框架的基础,面向spring本身;ApplicationContext:面向使用spring框架的开发者,跟spring框架交互。BeanFactory


springIoc_第1张图片

通过BeanFactory启动Ioc容器时,不会初始化bean,第一次调用时初始化。对于单例模式的bean,会缓存到HashMap中,key是beanname

ApplicationContext注解启动类:AnnotationConfigApplicationContext @Configuration注释的类

WebApplicationContext:

springIoc_第2张图片


springIoc_第3张图片

Bean配置信息定义了Bean的实现及依赖关系,spring容器在内部建立Bean定义注册表(一个个的BeanDeinition组成),然后根据注册表加载、实例化Bean,并建立Bean与Bean之间的依赖关系,最后将Bean实例放入Bean缓存池(单例)

 BeanFactory和FactoryBean其实没有什么比较性的,只是两者的名称特别接近,所以有时候会拿出来比较一番,BeanFactory是提供了OC容器最基本的形式,给具体的IOC容器的实现提供了规范,加载、管理bean,FactoryBean可以说为IOC容器中Bean的实现提供了更加灵活的方式,FactoryBean在IOC容器的基础上给Bean的实现加上了一个简单工厂模式和装饰模式,我们可以在getObject()方法中灵活配置。其实在Spring源码中有很多FactoryBean的实现类,要想深入准确的理解FactoryBean,只有去读读Spring源码了。

你可能感兴趣的:(springIoc)