Spring回调方法DisposableBean接口
Spring回调方法DisposableBean接口
Josean_Luo 发表于4年前
Spring回调方法DisposableBean接口
  • 发表于 4年前
  • 阅读 3392
  • 收藏 4
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

摘要: DisposableBean

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

 

SimpleBean.java

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;
}
}

配置文件:

<?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>

测试代码:

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


标签: DisposableBean
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 7
博文 21
码字总数 5148
×
Josean_Luo
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: