Java | Spring框架 | Bean的生命周期:从创建到销毁的全过程

Bean的生命周期:从创建到销毁的全过程

Spring管理的Bean具有完整的生命周期,这个生命周期从创建开始,到填充属性,初始化,使用,销毁最后到清除。下面详细解释每个阶段:

  1. 创建(Creation):这是Bean生命周期的开始阶段。Spring容器根据配置创建Bean的实例。
  2. 填充属性(Population of bean properties):在这个阶段,Spring容器将配置中定义的属性值注入到Bean中。这包括字段注入、构造器注入、Setter方法注入等。
  3. 初始化(Initialization):在初始化阶段,容器会调用Bean的初始化方法(init-method指定的方法)。这个阶段是Bean准备就绪使用的前一个阶段。
  4. 使用(Usage):应用程序开始使用这个Bean。Bean现在可以处理请求并执行其业务逻辑。
  5. 销毁(Destruction):当Bean不再需要时,容器会进行清理工作。对于单例Bean,这个阶段发生在容器关闭时。对于原型Bean,这个阶段发生在每次Bean被销毁时。
  6. 清除(Disposal):这是Bean生命周期的最后一个阶段。在这个阶段,容器会执行清理工作,比如调用Bean的销毁方法(destroy-method指定的方法)。

代码示例:

// MyBean.java
public class MyBean {
    private String message;
    // 依赖注入
    public MyBean(String message) {
        this.message = message;
    }
    // 初始化方法
    public void init() {
        System.out.println("MyBean initialized");
    }
    // 销毁方法
    public void destroy() {
        System.out.println("MyBean destroyed");
    }
    // Bean的使用方法
    public void showMessage() {
        System.out.println(message);
    }
}
// AppConfig.java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
    @Bean(initMethod = "init", destroyMethod = "destroy")
    public MyBean myBean() {
        return new MyBean("Hello, World!");
    }
}
// MainApp.java
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MainApp {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        MyBean myBean = context.getBean(MyBean.class);
        myBean.showMessage(); // 输出: Hello, World!
        // 当应用程序关闭时,会调用myBean的destroy方法
    }
}

在这个例子中,MyBean类具有一个初始化方法init和一个销毁方法destroy

AppConfig类中,我们使用@Bean注解来定义MyBean,并指定initMethoddestroyMethod

MainApp类中,我们使用ApplicationContext来获取MyBean的实例,并调用其showMessage方法。当应用程序关闭时,MyBeandestroy方法会被调用。


AI时代的游轮已经到来

如果你觉得开发过程中存在重复性工作,效率不够高。

不妨看看影子的AI+编程玩法,涵盖了Java | AI+编程的学习资料,助力每一位编程人员提高效率,无论你是在校学生或是工作者,都应为未来的AIG时代做准备。

AI编程学习资料icon-default.png?t=N7T8https://blog.csdn.net/yingzix688/article/details/137894050

  • 29
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值