你的位置:首页 > 软件开发 > Java > Spring容器中Bean的生命周期

Spring容器中Bean的生命周期

发布时间:2015-11-08 01:00:07
日出日落,春去秋来,花随流水,北雁南飞,世间万物皆有生死轮回。从调用 人类大脑对图像的认知能力永远高于文字,因此,闲言少叙,书归正传,上图先: 步骤很多,切莫惊慌,我们可以把上面的步骤归纳如下:1-2:创建实例;  现在假设spring就是个容器,而配置文件中配置的 ...

Spring容器中Bean的生命周期

日出日落,春去秋来,花随流水,北雁南飞,世间万物皆有生死轮回。从调用

 

人类大脑对图像的认知能力永远高于文字,因此,闲言少叙,书归正传,上图先:

 

Spring容器中Bean的生命周期

 

步骤很多,切莫惊慌,我们可以把上面的步骤归纳如下:

1-2:创建实例;

  现在假设spring就是个容器,而配置文件中配置的bean属性才是我们真正需要的东西。创建实例就是说,我把配置文件中的bean信息取出来化作一个真正的bean并放到容器中。

3-4:注入依赖关系;

  第3步是创建实例之后处理了一些事情,第4步是把

5:bean初始化之前的处理;

  应用开发者需要把容器中实例化的bean拿出来用,这个拿出来的过程就是初始化(注意实例化与初始化的区别,instantiation 和initialization,分得清吗?英语没学好怪我咯?),第五步就是在初始化之前,对已经实例化的bean再作一定的处理。

6,7:初始化。

  如果bean实现了InitializingBean,那么将调用InitializingBean的afterPropertiesSet()方法做一些初始化处理。如果没有实现InitializingBean,而是在配置文件中定义了init-method属性值,那么系统会找到init-method对应的方法并执行之,程序猿哥哥一般在这个方法里写一些初始化操作;

8:bean初始化之后的处理。

  初始化之后在这个方法中再对bean进行修饰装点。

9,10:交给应用开发人员处理;

  如果在<bean>中指定Bean的作用范围是scopt="prototype",那么系统将bean返回给调用者,spring就不管了(如果两个实例调用的话,每一次调用都要重新初始化,一个实例的修改不会影响另一个实例的值。如果指定Bean的作用范围是scope="singleton",则把bean放到缓冲池中,并将bean的引用返回给调用者。这个时候,如果两个实例调用的话,因为它们用的是同一个引用,任何一方的修改都会影响到另一方。)

11.bean用完之后;

  对于scope="singleton"的bean,使用完之后spring容器会做一些处理,比如编写释放资源、记录日志等操作。

12.销毁;

  调用配置文件中的销毁方法销毁实例。

 

光说不练假把式。来看实例:

 1 <??> 2 <beans ="http://www.springframework.org/schema/beans" 3   ="http://www.w3.org/2001/ ="http://www.springframework.org/schema/p" 4   xsi:schemaLocation="http://www.springframework.org/schema/beans  5     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 6   <bean id="jay" class="com.mesopotamia.bean_life_cycle.JayChou"  7      init-method="myInit" 8      destroy-method="myDestory" 9      p:sex="男"10      p:girlFriend="蔡依林" 11      p:profession="歌手,演员,导演,主持"12      scope="singleton"13     /> 14 </beans>

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Spring容器中Bean的生命周期

关键词:Spring

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录