Spring回调方法DisposableBean接口

除了自定义的destroy-method.还可以实现DisposableBean接口,来回调bean销毁时候执行的方法,这个接口有一个destroy方法,生命周期是是destroy----bean销毁---自定义的destroy方法 

 

SimpleBean.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package  ch5.destroy;
import  org.springframework.beans.factory.DisposableBean;
import  org.springframework.beans.factory.InitializingBean;
public  class  SimpleBean  implements  InitializingBean,DisposableBean {
   public  void  afterPropertiesSet()  throws  Exception {
         System.out.println( "this is info from afterpropertiesSet from SimpleBean" );
     }
private   String name;
   private  String sex;
   private  String age;
   public  void  destroyMethod(){
       System.out.println( "this is info from customer destroy method" );
   }
   public  void  destroy(){
       System.out.println( "this is info from destroy method" );
   }
public  String getAge() {
     return  age;
}
public  void  setAge(String age) {
     this .age = age;
}
public  String getName() {
     return  name;
}
public  void  setName(String name) {
     this .name = name;
}
public  String getSex() {
     return  sex;
}
public  void  setSex(String sex) {
     this .sex = sex;
}
}

配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<? 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.0.xsd" >
< bean  id = "SimpleBean"  class = "ch5.destroy.SimpleBean"  destroy-method = "destroyMethod" >
< property  name = "name" >
     < value >gaoxiang</ value >
   </ property >
< property  name = "sex" >
    < value >male</ value >
</ property >
< property  name = "age" >
     < value >26</ value >
   </ property >
</ bean >
</ beans >

测试代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package  ch5.destroy;
import  java.io.File;
import  org.springframework.beans.factory.BeanFactory;
import  org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import  org.springframework.beans.factory.support.BeanDefinitionRegistry;
import  org.springframework.beans.factory.xml.XmlBeanFactory;
import  org.springframework.core.io.FileSystemResource;
public  class  TestSpring{
   public  static  void  main(String args[])   throws  Exception{
       //获取bean factory
       ConfigurableListableBeanFactory factory=(ConfigurableListableBeanFactory)getBeanFactory();   //使用子beanFactory
   
       SimpleBean bean1=(SimpleBean)factory.getBean( "SimpleBean" );
       
       System.out.println( "before destroy" );
       factory.destroySingletons();
       System.out.println( "after destory" );
     
   }
   public  static  BeanFactory getBeanFactory(){
       //获取bean factory
       String realpath= "" ;
    
          //加载配置项
       realpath=System.getProperty( "user.dir" )+File.separator+ "src" +File.separator+ "ch5/destroy" +File.separator+ "applicationContext.xml" ;
   
      
       ConfigurableListableBeanFactory  factory= new  XmlBeanFactory( new  FileSystemResource(realpath));
       
       return  factory;
   }
}
 

结果:

this is info from afterpropertiesSet from SimpleBean
before destroy
this is info from destroy method
this is info from customer destroy method
after destory

 原文地址:http://blog.csdn.net/daryl715/article/details/1678986

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值