spring之生命周期

1、容器中对的生命周期

spring可以管理 singleton作用域的bean的生命周期,spring可以精确地知道该bean何时被创建,何时被初始化完成,容器合适准备销毁该bean实例。

spring无法管理prototype作用域的bean的生命周期,每次客户端请求prototype作用域的bean,bean实例都会完全交给客户端管理,容器不再跟踪其生命周期,

spring管理生命周期有两个时期:

  注入依赖关系之后

  即将销毁bean之前

2、注入依赖关系之后

spring提供了两种方式在bean全部属性设置成功后执行特定行为,在spring注入依赖关系之后,spring会自动执行init-method指定的方法和实现InitializingBean的方法

如果既指定了init-method,又实现了InitializingBean接口,这时候spring会先执行InitializingBean接口中定义的方法,让后去执行method执行的方法。

 a、使用init-method属性

 b、实现InitializingBean

3、bean销毁之前的行为

spring提供了两种方式在bean销毁之前执行特定行为,在spring销毁之前,spring会自动执行destroy-method指定的方法和实现DisposableBean接口。

如果既指定了destroy-method,又实现了DisposableBean接口,这时候spring会先执行DisposableBean接口中定义的方法,然后去执行destroy-method执行的方法。

a、使用destory-method属性

  b、实现DisposableBean

4、协调不同作用域的bean

当两个singleton作用域的的bean存在依赖关系时,或者prototype作用域的bean依赖singleton作用域的bean,使用spring提供的依赖关系进行管理即可

但是当singleton作用域的bean依赖prototype作用的bean,spring如何处理呢

    singleton作用域的bean只有一次初始化的机会,他的依赖关系只在初始化阶段被设置,当singleton作用域的初始化之前,spring会先创建被依赖的prototype作用域的bean,然后才去初始化singleton作用域的bean,并将prototype bean注入singleton,以后无论何时通过singleton去访问prototype,得到的都是最初的那个prototype bean,相当于singleton bean把prototype bean变成了singleton bean行为。

 

转载于:https://www.cnblogs.com/pjfmeng/p/7543864.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值