Spring——IOC容器和bean

1.Spring IOC容器概述

1:spring IOC容器:

1.工作原理:spring容器会根据配置文件去组装和生产所需对象以供用户使用。

2.spring IOC容器基础:ApplicationContext和BeanFactory

2.BeanFactory

1.作用:对对象进行管理,负责对bean对象的实例化、装备和声明周期的管理

3.ApplicationContext

1.ApplicationContext是BeanFactory的一个子接口,比beanfactory添加了更多的功能。

2.ApplicationContext的实现:4种

主要2种:

(1)ClassPathXmlApplicationContext:上下文信息来自xml文件

(2)AnnotationConfigApplicationContext:基于Java的配置,就是采用注释的元数据配置方式

4.两者之间的区别

相同点:两者都是容器

不同点:(1)applicationcontext是beanFactory的子接口,比beanFactory拥有更多的功能,是他的一个完整的超集。beanFactory是ApplicationContext的基础。

(2)实例bean的载入方式不同:beanFactory延迟装载所有的bean,直到getBean()方法调用的时候才被创建;ApplicationContext启动之后装载所有单实例bean。


2.Bean的概述

1.bean的实例化

bean通过容器的配置元数据进行创建。

bean的实例化:3种

(1)通过构造方法

(2)使用静态工厂方法

(3)使用实例工厂方法

2.bean的生命周期

实例化->设置属性->设置bean名称,bean工厂,应用上下文->预处理(在初始化之前)->初始化bean->预处理(在初始化之后)->bean已经准备好->销毁bean

1.实例化:spring实例化bean

2.注入属性:根据配置文件进行属性注入property








3.设置bean名称,bean工厂,上下文(这一步可省略不写):实现*aware接口

(1)BeanNameAware:获得该bean在容器中的名字

(2)BeanFactoryAware:获得beanFactory对象用来检测bean的作用域或者创建其他的bean

•ResourceLoaderAware:获得ResourceLoader对象,可以获得classpath中某个文件

•ServletContextAware:在一个MVC应用中可以获取ServletContext对象,可以读取context中的参数

•ServletConfigAware在一个MVC应用中可以获取ServletConfig对象,可以读取config中的参数

4.初始化:initialization。初始化方式:3种

•实现InitializingBean和DisposableBean接口(不推荐)

Spring——IOC容器和bean_第1张图片
实现接口

•在bean的配置文件中制定init-method和destroy-method方法

Spring——IOC容器和bean_第2张图片
配置文件
注解方式

•使用@PostConstruct和@PreDestroy注解(9之后不能直接写)

3.bean的作用域

1.singleton:默认的每个容器作用域当中的一个bean只实例化一个实例。
2.prototype:一个bean对应多个对象实例
3.request 4.session 5.global 6.session 7.application

4.bean的注入

依赖注入:

你可能感兴趣的:(Spring——IOC容器和bean)