spring Bean的生命周期管理

Spring中bean的生命周期管理可以在xml配置文件(一般叫bean.xml或ApplicationContext.xml)中通过scope属性进行控制。当scope属性默认的为singleton(单例),这个时候bean是在spring容器启动的时候进行加载和实例化并且是单实例的;当你将scope属性改为prototype的时候,这种情况下bean将在bean被调用时实例化并且每次调用生成一个bean的实例。(request,session,global session属性将在web变成是再学习)

lazy-init属性默认为false,即在spring容器启动时加载并实例化配置文件中定义的所有 bean,当然当我们指定为true的时候,bean将在程序调用的时候才初始化,该属性定义在<bean>中。当你希望每个bean都拥有相同的lazy-init属性,这时你可以在<beans>中定义global-lazy-init属性进行指定。

同时可以指定bean的初始化方法init-method属性和销毁方法destroy-method属性。

作用域范围是单例的bean是在实例化容器的时候就实例化。

作用域范围是prototype的bean是在getBean的时候被实例化的。

作用与范围是单实例并且lazy-init="true",是在getBean的时候被实例化的。

也可以指定beans节点的属性default-lazy-init=true

lazy-init的缺点是不能再启动时发现实例化的错误,只能在运行期发现,这点是我们不太希望看到的

如果在生成bean时需要对某些资源进行初始化,可以指定init-method="init",方法名指定为类里面的方法名。此方法是在实例化过后执行。如果在bean被销毁前要关闭一些资源,可以指定destroy-method="destroy"

需要调用spring容器的close方法进行关闭才能执行销毁方法,与前面代码有一定不同。

AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");

ctx.close();

 

Bean的生命周期:

(1)实例化(必须的)构造函数构造对象

(2)装配(可选的)为属性赋值

(3)回调(可选的)(容器-控制类和组件-回调类)

(4)初始化(init-method=" ")

(5)就绪

(6)销毁(destroy-method=" ")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值