0%

Bean管理

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)运行结果