Spring学习「第三节」:Bean的作用域和生命周期

Bean的作用域
1.语法

在bean标签加上属性scope就可以了

2.四个作用域
在Spring中,可以在bean标签的scope属性设置bean的作用域,可以决定这个bean是单例的还是多实例的
默认情况,Spring只为每个在IOC容器里面声明的bean创建唯一一个实例,整个IOC容器范围内都能共享该实例,所有后续的getBean()调用和bean引用都将返回这个唯一的bean实例,这个作用域被称为singleton,它是所有bean的默认作用域
当bean的作用域是单例时,Spring会在IOC容器对象创建的时候就创建bean的对象实例。
当bean的作用域是prototype时,IOC容器在获取bean的实例时创建bean的实例对象,而且每调用一次getBean()就创建一个实例
在这里插入图片描述
singleton:单例

对象创建时机:创建容器对象时,spring同时创建一个bean对象 ,不管你是否使用,他都存在了,每次获取到的对象都是同一个对象。
prototype:多例

创建容器对象的时候,没有执行构造器
使用getBean()获取对象的时候,构造器执行了
对象的创建时机:getBean()方法被调用的时候,创建对象执行
request:请求域

当前请求有效,离开请求域失效
当前请求:url不变就是当前请求
session:会话域

当前会话有效,离开当前会话失效
当前会话:当前浏览器不关闭不更换
在这里插入图片描述
在这里插入图片描述
Bean的生命周期
1.Bean的生命周期

Spring的IOC容器可以管理bean的生命周期,Spring运行在bean生命周期内特定的时间点执行指定的任务

(1)Spring的IOC容器对bean的生命周期进行管理的过程

①通过构造器或工厂方法创建bean实例
②为bean的属性设置值和对其他bean的引用
③bean可以使用
(2)配置bean的时候,可以通过init-method和destroy-method属性为bean指定初始化和销毁的方法

配置这两个方法之后的生命周期过程

①通过构造器或工厂方法创建bean实例
②为bean属性设置值和对其他bean的引用
③调用bean的初始化方法
④使用bean
⑤当容器关闭的时候,调用bean的销毁方法
在这里插入图片描述
在这里插入图片描述
2.bean的后置处理器
bean的后置处理器允许在调用初始化方法前后对bean进行额外的处理
bean后置处理器对IOC容器里面的所有bean实例逐一处理,而非单一实例,它的典型应用是:检查bean属性的正确性或根据特定的标准更改bean的属性
bean后置处理器需要实现的接口org.springframework.beans.factory.config.BeanPostProcessor
在初始化方法被调用前后,Spring把每个bean实例分别传递给上述接口的以下两个方法:
postProcessorBeforeInitialization(Object,String)
postProcessorAfterInitialization(Object,String)
如何实现
①实现BeanProcessor接口
②重写
postProcessorBeforeInitialization和postProcessorAfterInitialization方法
③在容器中装配后置处理器
在这里插入图片描述
在这里插入图片描述
注意:装配后置处理器会为当前容器的每一个bean都装配后置处理器,不能为局部装配后置处理器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值