何时调用SpringBeans销毁方法?

我已经在bean的“销毁方法”中放入了sysout语句。当我运行示例代码时,sysout没有得到输出。这是否意味着销毁方法未得到调用?

测试类别:

  package spring.test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class InitTest {

public static void main(String[] args) {

ApplicationContext ctx = new ClassPathXmlApplicationContext("InitTestContext.xml");

InitTestBean bean = (InitTestBean)ctx.getBean("InitTestBean");

bean.display();

}

}

The Bean

  package spring.test;

public class InitTestBean {

private String prop1;

private String prop2;

public InitTestBean(String prop1, String prop2) {

System.out.println("Instantiating InitTestBean");

this.prop1 = prop1;

this.prop2 = prop2;

}

public void setProp1(String prop1) {

System.out.println("In setProp1");

this.prop1 = prop1;

}

public void setProp2(String prop2) {

System.out.println("In setProp2");

this.prop2 = prop2;

}

public String getProp1() {

return prop1;

}

public String getProp2() {

return prop2;

}

public void display() {

System.out.println("Prop1 is " + prop1);

System.out.println("Prop2 is " + prop2);

}

public void initialize(){

System.out.println("In initialize");

this.prop1 = "init-prop1";

this.prop2 = "init-prop2";

}

public void teardown() {

System.out.println("In teardown");

this.prop1 = null;

this.prop2 = null;

}

}

配置文件:

<?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:aop="http://www.springframework.org/schema/aop"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<bean id="InitTestBean" class="spring.test.InitTestBean" init-method="initialize" destroy-method="teardown">

<constructor-arg value="Prop1" />

<constructor-arg value="Prop2" />

<property name="prop1" value="setProp1"/>

<property name="prop2" value="setProp2"/>

</bean>

</beans>

回答:

你的示例不起作用,因为你没有关闭appcontext,只是让程序终止。

调用close()上下文,你将看到被调用的bean destroy-method。

以上是 何时调用SpringBeans销毁方法? 的全部内容, 来源链接: utcz.com/qa/430587.html

回到顶部