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
<bean id="student" class="com.lifeCycle.Student" >
<property name="name" value="liming"></property>
<property name="age" value="19"></property>
</bean>
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接口(不推荐)
•在bean的配置文件中制定init-method和destroy-method方法
•使用@PostConstruct和@PreDestroy注解(9之后不能直接写)
3.bean的作用域
1.singleton:默认的每个容器作用域当中的一个bean只实例化一个实例。
2.prototype:一个bean对应多个对象实例
3.request 4.session 5.global 6.session 7.application
4.bean的注入
依赖注入: