xcxd.net
当前位置:首页 >> spring的BEAn生命周期 >>

spring的BEAn生命周期

spring中bean的生命周期管理可以在xml配置文件(一般叫bean.xml或applicationcontext.xml)中通过scope属性进行控制.当scope属性默认的为singleton(单例),这个时候bean是在spring容器启动的时候进行加载和实例化并且是单实例的;

默认的bean是单例的,也就是说只有spring 容器关闭的时候才会销毁这些bean对象,如果声明的bean对象是prototype类型的话,就非单例了, 那么这些对象将不由spring容器维护,该对象没有引用的时候jvm会适时垃圾回收掉

Spring框架中,一旦把一个bean纳入到Spring IoC容器之中,这个bean的生命周期就会交由容器进行管理,一般担当管理者角色的是BeanFactory或ApplicationContext.认识一下Bean的生命周期活动,对更好的利用它有很大的帮助.下面以

Spring Bean的完整生命周期从创建Spring容器开始,直到最终Spring容器销毁Bean. Bean的完整生命周期经历了各种方法调用,这些方法可以划分为以下几类:Bean自身的方法:这个包括了Bean本身调用的方法和通过配置文件中<bean>的

singleton ,prototype , session,request,globalsession 后三个是在web应用中的!并且 spring 也可以自定义生命周期的!自己实现Lifecylce接口

有2种情况,默认情况下为singleton,bean的scope属性可做设置,singleton或prototype为两个可选值,一般来说,只要容器启动后,你的jvm不down,所有的singleton对象实例均存在在其对应的容器中,prototype类型的与你在程序里进行的new操作一致,也就是说,你getbean一次,相当于new一个新对象.

为了演示spring的生命周期,首先必须要加入spring的相关包新建一个SpringBoy类 实现BeanNameAware, BeanFactoryAware, InitializingBean, DisposableBean要注意加入相关的包.新建一个processor类,用于处理bean,叫作bean处理器,在

此图摘自<Spring.in.Ation.3rd.Edition> 1.2.2 A bean's life 上半面部分的橙色的步骤描述了一个bean初始化的过程中可能要进行的所有逻辑,,也就是当你在xml中配置了bean或者通过注解标注过bean,spring容器启动后要做的事情. 上图可以很清楚的看到bean的生命周期.一旦bean被初始化,bean就会一直存在于AplicationContext(环境上下文中) 除非spring容器停止.在这段时间中 bean可以spring被容器所调用 至于原理代码spring.beans,spring.core,spring.context都有相关描述,可以看spring的代码参考

网站首页 | 网站地图
All rights reserved Powered by www.xcxd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com