如果bean 实现了 InitializingBean 接口,将调用 afterPropertiesSet ()方法;(那么在下面的xml中就不需要配置 init-method和destory-method了)
如果Bean 指定了 init-method 方法,它将被调用。
如果 Bean 实现了 DisposableBean 接口, destory() 方法被调用(那么在下面的xml中就不需要配置 init-method和destory-method了)。
如果指定了订制的销毁方法,就调用这个方法。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="beancycle" class="com.test.spring.beans.cycle.Person"
init-method="initmethod"
destroy-method="destorymethod"
>
<property name="uname" value="badMonkey"></property>
</bean>
</beans>
package com.test.spring.beans.cycle;
public class Person {
private String uname;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
System.out.println("进入set方法...");
}
public Person(){
System.out.println("进入构造器...");
}
public void initmethod(){
System.out.println("进入init...");
}
public void destorymethod(){
System.out.println("进入destory...");
}
}
package com.test.spring.beans.cycle;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans-cycle.xml");
Person p = (Person) ctx.getBean("beancycle");
System.out.println(p);
ctx.close();
}
}