6、spring-bean的生命周期

bean的生命周期:  bean创建---初始化----销毁的过程,容器管理bean的生命周期。

初始化: 对象创建完成,并赋值好,调用初始化方法。
销毁:单实例:容器关闭的时候调用销毁方法
          多实例:容器不会管理这个bean,容器不会调用销毁方法。

实现初始化和销毁方法,一般采用下面两种方式:

 1)、指定初始化和销毁方法;   通过@Bean指定init-method和destroy-method;
 2)、通过让Bean实现InitializingBean(定义初始化逻辑),DisposableBean(定义销毁逻辑);

 

示例代码:

public class Campaign {
    public void init(){
        System.out.println("Campaign 对象初始化");
    }
    public void detory(){
        System.out.println("Campaign 对象销毁");
    }
}

 

public class Coupon implements InitializingBean,DisposableBean {

    @Override
    public void destroy() throws Exception {
        System.out.println("Coupon销毁");
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("afterPropertiesSet");
    }
}

配置类

@Configuration
public class LifeCycleConfig {
    /**
     * initMethod指定初始化方法 campaign里init()
     * destroyMethod指定销毁方法 campaign里detory()
     * @return
     */
    @Bean(initMethod="init",destroyMethod="detory")
    public Campaign campaign(){
        return  new Campaign();
    }

    @Bean
    public Coupon coupon(){
        return new Coupon();
    }
}

测试运行

@Test
public void test(){
    AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(LifeCycleConfig.class);
    System.out.println("ioc容器创建完成....");
    Object campaign = applicationContext.getBean("campaign");
    Object coupon = applicationContext.getBean("coupon");

    applicationContext.close();//关闭容器

}

 

从运行结果可以看到容器调用了相应的初始化和销毁方法。

ae4448190da9290da00e331693229fde93d.jpg

 

转载于:https://my.oschina.net/suzheworld/blog/3008151

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值