Spring框架中的Bean对象的生命周期

从书上可知,Spring框架中Bean对象有它的生命周期,还包括Bean的销毁。在BeanFacotory中获取的实例是Singleton,BeanFactory默认每一个引用来维护一个实例,对单执行程序来讲,并不会有什么问题,但是多程序来说,就需要你注意执行的安全,可以设置每次在BeanFacotry中获取Bean时,都产生一个新的实例。

for example:

<bean id="helloBean" class="com.baidu.HelloBean" singleton="false">

 singleton默认值是true,意思是,每次都是共享一个实例,但是如果你要换成了false,每次都会产生一个新的实例。

从上一小结也曾经说过,BeanFactory负责Bean的生命周期,包括Bean的创建与销毁,Bean的创建方式是否为singleton,

Bean的属性设定,依赖关系的关联等。还可以在Bean的生命周期的某个阶段做一些事情,可以有几种方式。

第一种:通过Spring框架中提供的org.springframework.beans.factory.InitializingBean,和org.springframework 

.beans.factory.DisposableBean,在创建或销毁的时候做一些事情。(书上描述说这种方式会导致Bean的可以移植性)

第二种:在创建HelloBean同时创建两个方法,用来当创建该bean或销毁该bean对象时候做某些事情.代码如下:

public class HelloBean {
    public void init() {
        ....
    }   
   
    ....
   
    public void destroy() {
        ....
    }
}
applicationContext.xml

<bean id="helloBean" class="com.baidu.HelloBean"
                           init-method="init"
                           destroy-method="destroy">
</bean>

 这样做的好处就是不用引入spring框架中的类,就可以让Bean对象轻松的从Spring框架中解脱出来。

 然而这种方法还是依赖于Spring的容器,容器必须要有调用这个方法的能力。知识一些方法的名可以由自己去决定。

除了两种方式之外,其实还可以在Bean对象创建的setter方法中做一些事情,可以让Bean不依赖容器或特定的类.但是销毁时的调用就很麻烦,因为finalize()执行的时间是由Gc决定。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值