Spring受管Bean的与处理和后处理三(使用标签的init-method和destroy-method属性 )

Spring受管Bean的与处理和后处理三(使用 标签的init-method和destroy-method属性 )
  (残梦追原创 转载注明
本文地址: http://www.blogjava.net/cmzy/archive/2008/07/29/218059.html)

       在<bean> 标签中,有init-method和destroy-method属性,通过设置这两个属性的值,可以很方便的指定该受管Bean的缺省的初始化方法和析构方法。

        要给应用中每个Bean都指定init-method和destroy-method属性,那将是一个麻烦的工作,要简化配置,可以通过<beans>标签的default-init-method和default-destroy-method属性来为其范围内的所有受管Bean制定相同的初始化方法和析构方法。

        下面的范例展示如何使用<bean>标签的init-method和destroy-method属性。

         创建java工程,添加Spring开发能力,创建ioc.test包。创建Animal类,为其添加name、age成员、Geter和Seter方法、speak方法后,再添加一个初始化方法和一个析构方法,名字可以任意,这里为Start和end。代码如下:

/** * */ package ioc.test; /** * @author zhangyong * */ public class Animal{ private String name; private int age; public String speak(){ return "我的名字:"+this.name+",我的年龄:"+this.age; } public void start() throws Exception { System.out.println("初始化方法start()正在运行!"); } public void end() throws Exception { System.out.println("析构方法end()正在运行!"); } //Geter和Seter省略 }         配置文件中配置好bean,并为其指定响应的预处理方法和析构方法:
 

<?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-2.5.xsd"> <bean id="animal" class="ioc.test.Animal" init-method="start" destroy-method="end"> <property name="age" value="5"></property> <property name="name" value="猪"></property> </bean> </beans>

         创建含有主方法的测试类,代码如下:

/** * */ package ioc.test; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * @author zhangyong * */ public class TestMain { public static void main(String[] args) { AbstractApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); //注册容器关闭钩子,才能关掉容器,调用析构方法 ac.registerShutdownHook(); Animal animal = (Animal)ac.getBean("animal"); System.out.println(animal.speak()); } }

         运行主类,结果如下:


需要注意的是:要看到析构方法的输出,也必须要注册关闭钩子。



By:残梦追月

你可能感兴趣的:(Spring受管Bean的与处理和后处理三(使用标签的init-method和destroy-method属性 ))