Bean 的生命周期

Bean 的生命周期

        ⽣命周期指的是⼀个对象从诞⽣到销毁的整个⽣命过程,我们把这个过程就叫做⼀个对象的⽣命周期.

        Bean 的⽣命周期分为以下 5 个部分:

1. 实例化(为Bean分配内存空间)

2. 属性赋值( Bean 注⼊和装配,⽐如 @AutoWired )

3. 初始化

        a. 执⾏各种通知,如 BeanNameAware ,BeanFactoryAware ,ApplicationContextAware 的接⼝⽅法.

        b. 执⾏初始化⽅法 

                ▪ xml定义 init-method

                ▪ 使⽤注解的⽅式 @PostConstruct 

               ▪ 执⾏初始化后置⽅法( BeanPostProcessor )

4. 使⽤ Bean

5. 销毁 Bean

        a. 销毁容器的各种⽅法,如 @PreDestroy ,DisposableBean 接⼝⽅法,destroymethod. 

        实例化和属性赋值对应构造⽅法和 setter ⽅法的注⼊.初始化和销毁是⽤户能⾃定义扩展的两个阶段,可以在实例化之后,类加载完成之前进⾏⾃定义"事件"处理.

执⾏流程如下图所示:

        

代码演示

@Component
public class BeanLife {
    private User user;

    /**
     * 实例化(为Bean分配内存空间)
     * */
    public BeanLife(){
        System.out.println("实例化 BeanLife 对象");
    }

    /**
     * 属性赋值(Bean注⼊和装配,⽐如 @AutoWired )
     * */
    @Qualifier("user")
    @Autowired
    public void setUser(User user) {
        System.out.println("属性赋值");
    }

    /**
     * 初始化
     * */
    @PostConstruct
    public void init(){
        System.out.println("初始化");
    }

    /**
     * 使⽤ Bean
     * */
    public void use(){
        System.out.println("执行了 use 方法");
    }

    /**
     * 销毁 Bean
     * */
    @PreDestroy
    public void preDestroy(){
        System.out.println("销毁了 Bean ");
    }

}

执行结果

        根据执行结果可以看出,在 tomcat 启动之前,就已经做好了 1.实例化 2.属性赋值 和 3.初始化的工作

        在 tomcat 启动以后就开始使用 Bean ,使用好以后,结束程序,就销毁了 Bean 对象

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小林想被监督学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值