• 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

  • 相关阅读:
    OTA在线升级Android7.1系统迅为IMX6Q开发板支持SATA,PCIE,EIM总线,WIFI蓝牙
    迅为iTOP2K1000开发板龙芯中科国产64位Loognix系统工业核心主板
    四核处理器IMX6Q开发板Android7.1系统支持SATA、PCIE、EIM总线、WIFI蓝牙OTA远程升级提供OpenWrt文件系统
    迅为瑞芯微RK3399开发板Debian9多媒体测试之Gstreamer测试
    迅为IMX6ULL开发板Qt for Android搭建开发环境
    迅为RK3568开发板Ubuntu系统编写运行Qt工程
    src/caffe/proto/caffe.pb.h:17:2: error: #error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
    ubuntu/ linux挂载新硬盘
    so 对XXX未定义的引用
    nvcaffe 的一个问题解决
  • 原文地址:https://www.cnblogs.com/langtianya/p/5013213.html
Copyright © 2020-2023  润新知