七、【生命周期】注解@Bean
@Bean(initMethod = "init", destroyMethod = "destroy")方式
Bean实体
@Getter
@Setter
@ToString
@AllArgsConstructor
public class Person {
private String name;
private Integer age;
public Person() {
System.out.println("person no args constructor process");
}
public void init () {
System.out.println("person init method process");
}
public void destroy () {
System.out.println("person destroy method process");
}
}
配置类
@Configuration
public class PersonConfig {
/**
* 对于单实例Bean
* 构造方法:在容器初始化过程中,且未赋值的时候执行
* init方法:在赋值完成之后执行
* destroy方法:在容器关闭的时候执行
*
* 对于多实例Bean
* 在获取Bean的时候才会执行构造方法和init方法
* 而不会管理destroy方法
*/
// @Scope("prototype")
@Bean(initMethod = "init", destroyMethod = "destroy")
public Person person() {
return new Person("张三", 13);
}
}
测试类
public class MainTest {
@Test
public void m1() {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(PersonConfig.class);
System.out.println("······容器初始化完成······");
Person person = applicationContext.getBean(Person.class);
applicationContext.close();
}
}