程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Spring受管Bean的與處理和後處理 三

Spring受管Bean的與處理和後處理 三

編輯:關於JAVA

使用標簽的init-method和destroy-method屬性

在<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省略 

} 
/**
*
*/
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>
<?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());

   }
}  
/**
*
*/
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());

   }  
}

運行主類,結果如下:

需要注意的是:要看到析構方法的輸出,也必須要注冊關閉鉤子。

本文地址:http://www.blogjava.net/cmzy/archive/2008/07/29/218059.html)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved