Spring bean 生命周期
首先建立Student类,构造get set方法
代码如下
package com.jd.vo;
public class Student {
private int age;
static {
System.out.println("静态代码块");
}
{
System.out.println("非静态代码块");
}
public Student() {
System.out.println("构造方法");
}
public int getAge() {
return age;
}
public void setAge(int age) {
System.out.println("setter");
this.age = age;
}
public void init() {
System.out.println("init");
}
public void destroy() {
System.out.println("destroy");
}
}
下面配置xml
<bean id="student" class="com.jd.vo.Student" destroy-method="destroy" init-method="init" p:age="12"> </bean>
这里init-method="init" 作用bean实例化
init-method:在设置bean的属性后执行的自定义初始化方法,注意:①、该方法不能有参数;②、对象每创建一次就会执行一次该方法;
建立测试类Test
运行结果如下
最后少了一个销毁destroy
destroy-method:该参数中的方法只有bean标签属性scope为singleton且关闭Spring IOC容器时才会被调用,注意:该方法不能有参数
scope默认singleton
原因:
其中并无销毁方法。
改进:
输出结果可得
以下为其他内容:
1.bean的继承关系
这里给school赋值,但是却调用Student(这是因为这里Student类继承school类)
2.depends-on的作用:
<bean class="com.jd.vo.Student" depends-on="school"/>
<!-- depends-on="school"起到谁在前的作用,如果没有,则按照默认顺序 -->