Spring容器中Bean的创建及销毁
<= 往容器中注册Bean
单例: 容器启动 创建(构造函数) >>> 属性赋值 >>> 初始化(初始化方法) >>>使用 >>> 容器关闭(销毁方法)
多例: 每次获取 创建(构造函数) >>> 属性赋值 >>> 初始化(初始化方法) >>>使用 >>> 容器不会调用销毁方法
@Configuration
public class BeanTest04 {
public static void main(String [] args){
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(BeanTest04.class);
System.out.println("开始获取对象");
Object car = applicationContext.getBean("car");//获取对象
System.out.println("获取成功!");
applicationContext.close();//关闭Spring
}
@Bean(initMethod = "init",destroyMethod = "destroy" )
@Scope("prototype")
public Car car(){
return new Car("单例car");
}
@Bean(initMethod = "init",destroyMethod = "destroy")
public Car car1(){
return new Car("多利car");
}
}
class Car{
String name;
public Car(String name){
this.name = name;
System.out.println("开始创建对象:"+name);
}
public void init(){
System.out.println("初始化方法!:"+name);
}
public void destroy(){
System.out.println("销毁方法!"+name);
}
}
运行结果:
开始创建对象:多利car
初始化方法!:多利car
开始获取对象
开始创建对象:单例car
初始化方法!:单例car
获取成功!
销毁方法!多利car