bean的生命周期(最全最细讲解)

简介: bean的生命周期(最全最细讲解)

一、bean生命周期:

其定义为:从对象的创建到销毁的过程。而Spring中的一个Bean从开始到结束经历很多过程,但总体可以分为六个阶段Bean定义、实例化、属性赋值、初始化、生存期、销毁

二、案例代码演示

1.首先我们来创建一个包,在包中创建一个Orders的对象,然后在对象中创建一个无参构造方法....

package Collectiona.bean;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
public class MyBeanPost implements BeanPostProcessor {
 
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("在初始化之前执行的方法。");
        return bean;
    }
 
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("在初始化之后执行的方法。");
        return bean;
    }
}

2.SpringBean生命周期中的增强接口PostProcessor;postProcessBeforeInitialization方法执行前,会执行很多Aware类型的接口,这种类型接口作用是加载资源到Spring容器中。我们在创建一个MyBeanPost的类来实现BeanPostProcessor接口。

package Collectiona.bean;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
public class MyBeanPost implements BeanPostProcessor {
 
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("在初始化之前执行的方法。");
        return bean;
    }
 
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("在初始化之后执行的方法。");
        return bean;
    }
}

3.在xml文件中配置相关信息。初始化方式,配置的init-method;最后容器销毁,配置的destroy-method.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 
    <bean id="orders" class="Collectiona.bean.Orders" init-method="initMethod" destroy-method="destroyMethod">
        <property name="oname" value=""></property>
    </bean>
    <bean id="myBeanPost" class="Collectiona.bean.MyBeanPost">
 
    </bean>
</beans>

4.最后是进行测试输出:

package Collectiona.testSpring;
import Collectiona.bean.Orders;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class demo {
    public static void main(String[] args) {
     
ClassPathXmlApplicationContext("classpath:Bean4.xml");
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:Bean4.xml");
        Orders orders = context.getBean("orders",Orders.class);
        System.out.println("第四步:获取bean的实例对象");
        System.out.println(orders);
        context.close();
 
 
    }
    }

最终输出的结果是:

看完如果对你有帮助,感谢点赞支持!你的支持是我们不懈的动力,愿我们一起加油哦
看看右下角的 “一键三连” ,敢不敢点一下它。O(∩_∩)O


相关文章
|
7月前
|
XML Java 数据格式
SpringBean的生命周期
SpringBean的生命周期
72 0
|
Java 程序员 Spring
一文读懂 Bean的生命周期
一文读懂 Bean的生命周期
137 0
|
2月前
|
XML Java 数据格式
必知必会的13个Bean生命周期处理机制:深入理解与实践
【10月更文挑战第15天】在Spring框架中,Bean的生命周期是一个至关重要的概念,它涵盖了从Bean的创建、初始化、使用到销毁的全过程。对于一名资深的架构师而言,深入理解和掌握Bean生命周期的每一个处理机制,是构建健壮、高效和可维护应用程序的基础。本文将详细介绍Bean生命周期的13个处理机制,并通过实战demo示例来加深理解。
31 1
|
5月前
|
Java Spring
Spring初始化加速的思路和方案问题之在BeanFactory#doGetBean方法中,栈状态的变化影响bean的初始化的问题如何解决
Spring初始化加速的思路和方案问题之在BeanFactory#doGetBean方法中,栈状态的变化影响bean的初始化的问题如何解决
|
7月前
|
Java Spring
玩转对象掌控权:深入Spring,精准控制对象创建次数
玩转对象掌控权:深入Spring,精准控制对象创建次数
37 0
|
XML Java 数据库
SpringIOC操作Bean管理--最终章
SpringIOC操作Bean管理--最终章
82 0
|
Java Spring 容器
Spring源码:Bean生命周期(终章)
本系列前面讲解了Spring的bean定义、bean实例化、bean初始化等生命周期阶段。这些步骤使我们能够了解bean从创建到准备好使用所经历的过程。但是,除了这些步骤,bean的销毁也是非常重要的一步。在本系列的最后,我们将深入探讨bean的销毁过程,包括在什么情况下会发生销毁、销毁的顺序以及如何在bean销毁之前执行一些清理任务等。通过学习bean的销毁过程,我们将更全面地了解Spring的bean生命周期。在Spring中,有多种方式可以销毁bean。其中一种方式是在应用程序关闭时显式地调用`applicationContext.close()`方法来关闭容器。这个方法将会销毁所有还没
|
设计模式 Java 开发者
Spring框架中JavaBean的生命周期及单例模式与多列模式
Spring框架中JavaBean的生命周期及单例模式与多列模式
134 0
|
XML Java 数据格式
延迟初始化Bean会影响依赖注入吗
延迟初始化Bean会影响依赖注入吗
57 0
|
XML Java 数据格式
SpringBean生命周期
SpringBean生命周期