zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    形象理解ERP(转)
    禁用windows server 2008 域密码复杂性要求策略
    How to adding find,filter,remove filter on display method Form
    Windows Server 2008 R2激活工具
    How to using bat command running VS development SSRS report
    Creating Your First Mac AppGetting Started
    Creating Your First Mac AppAdding a Track Object 添加一个 Track 对象
    Creating Your First Mac AppImplementing Action Methods 实现动作方法
    Creating Your First Mac AppReviewing the Code 审查代码
    Creating Your First Mac AppConfiguring the window 设置窗口
  • 原文地址:https://www.cnblogs.com/langtianya/p/5013213.html
Copyright © 2011-2022 走看看