@Bean 指定初始化和销毁方法

时间:2022-04-08 19:40:33

bean 的生命周期

  bean 的创建 --> 初始化 --> 销毁

ioc 容器管理 bean 的声明周期

  可以自定义初始化和销毁方法

构造器( 对象创建 )被调用时机

  单实例:在容器启动的时候创建对象

  多实例:在每次获取的时候创建对象

初始化方法被调用时机

  单实例:对象创建完成,属性赋值好了之后,调用初始化方法

   多实例:在每次获取的时候,调用初始化方法

销毁方法被调用时机

  单实例:容器关闭的时候

  多实例:容器不会管理这个 bean ; 也就是说容器不会调用这个销毁方法

一、Student 类

public class Student {

    public Student(){
        System.out.println("创建 Student 对象");
    }
    
    public void init(){
        System.out.println("初始化对象");
    }
    
    public void destory(){
        System.out.println("销毁对象");
    }
}

二、配置类

@Configuration
public class ConfigOfLifeCycle { 
    //initMethod:指定初始化的方法
    //destroyMethod:指定销毁的方法
    @Bean(initMethod="init",destroyMethod="destory")
    public Student student(){
        return new Student();
    }
}

三、测试方法 

@Test
public void test3(){
    //创建 ioc 容器
    AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(ConfigOfLifeCycle.class);
    
    //关闭容器:用来测试 destory() 方法
    applicationContext.close();
}