程序员社区

【Spring学习及总结10】bean的生命周期

Spring在创建或者销毁的时候都会调用指定方法: 自定义初始化方法和销毁方法

首先写一个实体类Book,在类中自定义Book类的初始化方法和销毁方法

@Data
public class Book {
    private String bookName;
    private String author;
    public Book() {
        System.out.println("图书的构造方法...");
    }
    public void myInit(){
        System.out.println("图书的初始化方法....");
    }
    public void myDestroy(){
        System.out.println("图书的销毁方法....");
    }
}

配置实体类对象,设置bean对象的作用范围为单例的,并且指定初始化方法和销毁方法

<bean id="book01" class="com.hh.pojo.Book"
    destroy-method="myDestroy" init-method="myInit" scope="singleton">
</bean>

写一个测试类,看单例模式下,bean对象的生命周期

public class MyTest01 {
    //根据spring的配置文件得到ioc容器对象
    ClassPathXmlApplicationContext  context =
            new ClassPathXmlApplicationContext("spring.xml");

    @Test
    public void test(){
        System.out.println("容器关闭了....");
        context.close();
    }
}

在这里插入图片描述
单例模式下,bean对象的生命周期为:
容器启动(构造器)— 》初始化方法 —》(容器关闭)销毁方法

重新配置,将bean对象的作用范围设置为多实例的

<bean id="book01" class="com.hh.pojo.Book"
destroy-method="myDestroy" init-method="myInit" scope="prototype">
</bean>

写一个测试类:

public class MyTest01 {
    //根据spring的配置文件得到ioc容器对象
    ClassPathXmlApplicationContext  context =
            new ClassPathXmlApplicationContext("spring.xml");
    @Test
    public void test(){
        Book book01 = context.getBean("book01", Book.class);
        System.out.println("容器关闭了....");

        context.close();
    }
}

在这里插入图片描述
多实例下,bean对象的生命周期:
获取bean(构造器)—》 初始化方法 —》 容器关闭不会调用bean的销毁方法

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【Spring学习及总结10】bean的生命周期

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区