Spring 专题
专题目录
您的位置:java > Spring专题 > Spring Bean init-method 和 destroy-method实例
Spring Bean init-method 和 destroy-method实例
作者:--    发布时间:2019-11-20
在spring中,可以使用 init-method 和 destroy-method 在bean 配置文件属性用于在bean初始化和销毁某些动作时。这是用来替代 initializingbean和disposablebean接口

示例

这里有一个例子向您展示如何使用 init-method 和 destroy-method。
package com.h3.customer.services;

public class customerservice
{
	string message;
	
	public string getmessage() {
	  return message;
	}

	public void setmessage(string message) {
	  this.message = message;
	}
	
	public void initit() throws exception {
	  system.out.println("init method after properties are set : " + message);
	}
	
	public void cleanup() throws exception {
	  system.out.println("spring container is destroy! customer clean up");
	}
	
}

file : applicationcontext.xml, 在bean中定义了init-method和destroy-method属性。

<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-2.5.xsd">

	<bean id="customerservice" class="com.h3.customer.services.customerservice" 
		init-method="initit" destroy-method="cleanup">
   		
		<property name="message" value="i'm property message" />
	</bean>
		
</beans>

执行下面的程序代码:

package com.h3.common;

import org.springframework.context.configurableapplicationcontext;
import org.springframework.context.support.classpathxmlapplicationcontext;

import com.h3.customer.services.customerservice;

public class app 
{
    public static void main( string[] args )
    {
    	configurableapplicationcontext context = 
		new classpathxmlapplicationcontext(new string[] {"applicationcontext.xml"});
	
    	customerservice cust = (customerservice)context.getbean("customerservice");
    	
    	system.out.println(cust);
    	
    	context.close();
    }
}
configurableapplicationcontext.close将关闭应用程序上下文,释放所有资源,并销毁所有缓存的单例bean。


输出

init method after properties are set : i'm property message
com.h3.customer.services.customerservice@5f49d886 
spring container is destroy! customer clean up

 initit()方法被调用,消息属性设置后,在 context.close()调用后,执行 cleanup()方法;
建议使用init-method 和 destroy-methodbean 在bena配置文件,而不是执行 initializingbean 和 disposablebean 接口,也会造成不必要的耦合代码在spring。

下载源代码 – http://pan.baidu.com/s/1hreksq4

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册