生命周期
Bean 的生命周期
- 通过构造器创建 Bean 实例(无参构造)
- 为 Bean 的属性设置值和对其他 Bean 引用(调用 set 方法)
- 调用 Bean 的初始化的方法(需要进行配置)
- Bean 可以使用了(对象获取到了)
- 当容器关闭的时候,调用 Bean 的销毁方法(需要进行配置销毁的方法)
演示 Bean 的生命周期
package com.fairykunkun.bean;
public class Orders {
private String oname;
public String getOname ( ) {
return oname;
}
public void setOname ( String oname ) {
this.oname = oname;
}
}
package com.fairykunkun.bean;
public class Orders {
public Orders ( ) {
System.out.println ( "第一步 执行无参构造创建 Bean 实例" );
}
private String oname;
public String getOname ( ) {
return oname;
}
public void setOname ( String oname ) {
this.oname = oname;
}
}
package com.fairykunkun.bean;
public class Orders {
public Orders ( ) {
System.out.println ( "第一步 执行无参构造创建 Bean 实例" );
}
private String oname;
public String getOname ( ) {
return oname;
}
public void setOname ( String oname ) {
this.oname = oname;
System.out.println ( "第二步 调用 set 方法设置属性" );
}
}
package com.fairykunkun.bean;
public class Orders {
public Orders ( ) {
System.out.println ( "第一步 执行无参构造创建 Bean 实例" );
}
private String oname;
public String getOname ( ) {
return oname;
}
public void setOname ( String oname ) {
this.oname = oname;
System.out.println ( "第二步 调用 set 方法设置属性" );
}
public void initMethod ( ) {
System.out.println ( "第三步 执行初始化的方法" );
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns:p = "http://www.springframework.org/schema/p"
xmlns:util = "http://www.springframework.org/schema/util"
xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
<bean id = "orders" class = "com.fairykunkun.bean.Orders" init-method = "initMethod">
<property name = "oname" value="order"></property>
</bean>
</beans>
package com.fairykunkun;
import com.fairykunkun.bean.Orders;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestBean {
@Test
public void testBean ( ) {
ApplicationContext context =
new ClassPathXmlApplicationContext ( "bean5.xml" );
Orders orders = context.getBean ( "orders" , Orders.class );
System.out.println ( "第四步 获取创建 Bean 实例对象" );
System.out.println ( orders );
}
}
package com.fairykunkun.bean;
public class Orders {
public Orders ( ) {
System.out.println ( "第一步 执行无参构造创建 Bean 实例" );
}
private String oname;
public String getOname ( ) {
return oname;
}
public void setOname ( String oname ) {
this.oname = oname;
System.out.println ( "第二步 调用 set 方法设置属性" );
}
public void initMethod ( ) {
System.out.println ( "第三步 执行初始化的方法" );
}
public void destroyMethod ( ) {
System.out.println ( "第五步 执行销毁的方法" );
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns:p = "http://www.springframework.org/schema/p"
xmlns:util = "http://www.springframework.org/schema/util"
xmlns:lang = "http://www.springframework.org/schema/lang"
xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd">
<bean id = "orders" class = "com.fairykunkun.bean.Orders" init-method = "initMethod" destroy-method="destroyMethod">
<property name = "oname" value="order"></property>
</bean>
</beans>
package com.fairykunkun;
import com.fairykunkun.bean.Orders;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestBean {
@Test
public void testBean ( ) {
ApplicationContext context =
new ClassPathXmlApplicationContext ( "bean5.xml" );
Orders orders = context.getBean ( "orders" , Orders.class );
System.out.println ( "第四步 获取创建 Bean 实例对象" );
System.out.println ( orders );
( ( ClassPathXmlApplicationContext ) context ).close ( );
}
}
- 最终测试
