Bean的生命周期
通过构造方法或工厂方法创建bean对象——>为bean属性赋值——>调用 bean 的初始化方法,即init-method指定方法——>bean实例化完毕,可以使用——>容器关闭, 调用 bean 的销毁方法,即destroy-method指定方法。
public class Student {
private String name;
public Student() {
System.out.println("构造方法");
}
public String getName() {
return name;
}
public void setName(String name) {
System.out.println("set方法");
this.name = name;
}
public void init() {
System.out.println("初始化方法");
}
public void destroy() {
System.out.println("销毁方法");
}
<bean class="com.zzu.bean.Student" init-method="init" destroy-method="destroy">
<property name="name" value="张三"></property>
</bean>
public class Test {
public static void main(String[] args) {
ClassPathXmlApplicationContext application = new ClassPathXmlApplicationContext("application.xml");
Student student = application.getBean(Student.class);
System.out.println(student);
application.close();
}
}
运行结果
init-method:
在设置bean的属性后执行的自定义初始化方法,注意:① 该方法不能有参数;② 对象每创建一次就会执行一次该方法;
destroy-method:
该参数中的方法只有bean标签属性scope为singleton且关闭Spring IOC容器时才会被调用,注意:该方法也不能有参数;scope默认是单例,上面已经展示了,下面展示一下scope为多例(prototype)的时候
<bean class="com.zzu.bean.Student" init-method="init" destroy-method="destroy" scope="prototype">
<property name="name" value="张三"></property>
</bean>