java-Spring-bean的生命周期

本文详细解释了Java对象在Spring框架中的生命周期,包括实例化、属性赋值、初始化(@PostConstruct)和销毁(@PreDestroy)方法的应用。通过例子展示了如何在Spring中编写和测试带有生命周期回调的bean,以及这些方法在不同场景下的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义

程序中的每个对象都有生命周期,对象的创建初始化应用销毁的整个过程称之为对象的生命周期;

在对象创建以后需要初始化,应用完成以后需要销毁时执行的一些方法,可以称之为是生命周期方法;

在spring中,可以通过 @PostConstructt 和 @PreDestroy注解实现 bean对象 生命周期的初始化和销毁时的方法。

  • @PostConstruct 注解

    生命周期初始化方法,在对象构建以后执行。

  • @PreDestroy 注解

    生命周期销毁方法,比如此对象存储到了spring容器,那这个对象在spring容器移除之前会先执行这个生命周期的销毁方法(注:prototype作用域对象不执行此方法)。

 完整生命周期

  1. 实例化阶段(bean对象创建)

    在这个阶段中,IoC容器会创建一个Bean的实例,并为其分配空间。这个过程可以通过构造方法 完成。

  2. 属性赋值阶段

    在实例化完Bean之后,容器会把Bean中的属性值注入到Bean中,这个过程可以通过set方法 完成。

  3. 初始化阶段(bean对象初始化)

    在属性注入完成后,容器会对Bean进行一些初始化操作;

  4. 使用阶段

    初始化完成后,Bean就可以被容器使用了

  5. 销毁阶段

    容器在关闭时会对所有的Bean进行销毁操作,释放资源。

编写Spring的bean对象

package org.example.example;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
@Component
public class Life {
    private  String meaning;
    //实例化
    public Life(){
        System.out.println("1.调用无参数构造进行实例化");
    }
    //属性赋值
    @Value(value="你不知道的世界")
    public void setMeaning( String meaning){
        this.meaning = meaning;
        System.out.println("2.调用set方法进行属性赋值");

    }
    //初始化阶段
    @PostConstruct
    public void init(){
        System.out.println("3.执行生命周期初始化方法");
    }
    //销毁前阶段
    @PreDestroy
    public void destroy(){
        System.out.println("4.执行生命周期的销毁方法");

    }


}

运行测试

package org.example.example;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class LifeTest {

    public static void main(String[] args) {
        // Ctrl + Shift + Alt + c
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext("org.example.example");
        Life life = context.getBean(Life.class);
        //使用阶段
        System.out.println("4.开发者使用阶段");
        //关闭IoC容器
        context.close();
    }
}

运行结果 

 

 运用场景

Bean初始化和销毁方法可以在Bean生命周期的特定时机执行自定义逻辑,方便地对Bean进行管理和配置。

  • 初始化常见应用场景
    • 创建数据库连接
    • 加载资源文件
    • 进行数据校验
  • 销毁常见应用场景
    • 断开数据库连接
    • 保存数据
    • 释放占用的资源

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值