spring入门第三节——Bean管理
该文章目前只是个人向知识梳理。
1.工厂Bean
前两节的操作都是基于普通Bean的,还有一种类型的Bean是FactoryBean,下面介绍这两种Bean的区别
普通Bean:类的属性是固定的,不可更改的
FactoryBean:继承包的接口,类的属性由getObject方法的return值决定,return值是什么属性,类就是什么属性
2.Bean的作用域
意思就是单实例和多实例的区别
单实例:所有获取Bean对象的对象指向同一个地址。
多实例:每一个获取Bean对象的对象指向不同地址。
如果没有设置作用域,Bean类默认单实例。
如何设置单实例和多实例:
在Bean标签中通过scope设置
<Bean id="" class="" scope=""></Bean>
scope=”singleton”单实例
scope=”prototype”多实例
两者的区别:
单实例:所有获取Bean对象的对象指向同一个地址。在导入xml配置文件的时候就创建一个Bean对象。
多实例:每一个获取Bean对象的对象指向不同地址。不会主动创建Bean对象,只有对象获取Bean对象的时候才会创建Bean对象。
3.Bean的生命周期
流程一
(1)通过无参构造器实例化Bean对象
(2)将属性注入Bean对象
(3)Bean对象初始化
(4)对象获取实例化的Bean对象
(5)销毁Bean对象
流程二
销毁操作需要手动执行,这个流程没有考虑Bean的后置处理器,加入后置处理器后的生命周期:
(1)通过无参构造器实例化Bean对象
(2)将属性注入Bean对象
(3)在初始化之前执行的后置处理器方法
(4)Bean对象初始化
(5)在初始化之后执行的后置处理器方法
(6)对象获取实例化的Bean对象
(7)销毁Bean对象
代码实现:
(1)Bean类
(2)重写后置处理器方法的Java类
(3)xml文件。配置Bean类和重写后置处理器方法的Java类
(4)获取Bean对象的Java类
(5)运行结果