`
m635674608
  • 浏览: 5027612 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring回调方法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

 

http://blog.csdn.net/daryl715/article/details/1678986

分享到:
评论

相关推荐

    Spring bean初始化及销毁你必须要掌握的回调方法.docx

    下面将详细介绍如何通过不同方式定义Spring Bean的初始化和销毁回调方法。 **初始化回调方法** 1. **@PostConstruct注解** 这个Java标准注解用于标记一个方法,该方法将在对象完全构造后但在业务逻辑执行前被调用...

    详解Spring中bean生命周期回调方法

    Spring 框架提供了两个接口,InitializingBean 和 DisposableBean,供用户实现以达到生命周期回调的目的。 * InitializingBean 接口:用于定义 ApplicationContext 在完全初始化一个 Bean 以后需要回调的方法的。在...

    spring里面想要让一个类的实例在所有属性都准备好之后就让它自动执行某些方法

    同样,Spring还提供了销毁回调机制,如`DisposableBean`接口的`destroy()`方法,或`@PreDestroy`注解的方法,以及`destroy-method`属性。这些在bean生命周期结束时调用。 通过理解并适当地应用这些回调机制,你...

    Spring源码分析.docx

    Aware 接口是一种特殊的接口,用于提供 Bean 对象的生命周期事件回调。例如,可以使用 Aware 接口来执行 Bean 对象的初始化或销毁方法。 7. BeanPostProcessor 当经过上述几个步骤后,Bean 对象已经被正确构造 在 ...

    spring加载顺序讨论

    Spring提供了多种生命周期接口,如`InitializingBean`和`DisposableBean`,以及自定义生命周期回调。这些接口包含`afterPropertiesSet()`和`destroy()`方法,分别对应初始化和销毁时的回调。当Bean实现了这些接口,...

    Spring bean生命周期demo

    当Spring容器关闭时,或者如果Bean声明了`destroy-method`,则会调用销毁回调方法。这是清理资源和执行关闭操作的最佳时机。同样,`DisposableBean`接口的`destroy()`方法也可以用于此目的。 9. **Bean的销毁** ...

    Spring Bean生命周期&BeanDefinitions1

    3. **Bean接口回调**:如果Bean实现了特定的接口,如`BeanNameAware`、`BeanFactoryAware`或`ApplicationContextAware`,Spring会在适当的时候调用对应的回调方法。这些接口允许Bean获取其ID、BeanFactory引用或...

    开源框架面试专题及答案.pdf

    Spring Bean 的生命周期 ...&gt; InitializingBean 和 DisposableBean 回调接口 &gt; 针对特殊行为的其他 Aware 接口 &gt; Bean 配置文件中的 Custom init()方法和 destroy()方法 &gt; @PostConstruct 和@PreDestroy 注解方式

    spring其他标签

    - **ApplicationContextAware**:此接口的`setApplicationContext`方法被Spring容器回调,将整个`ApplicationContext`传递给bean,使bean能够访问上下文中的所有bean。 4. **初始化回调方法** - **...

    Spring官方文档之核心篇

    - **销毁回调**:如DisposableBean接口和自定义的destroy-method。 - **组合生命周期机制**:可以结合使用不同的生命周期机制来控制Bean的生命周期。 #### 自定义Bean的属性 Spring还支持自定义Bean的属性,包括...

    深度解析spring容器管理bean

    销毁回调则是在Bean不再使用、即将被销毁时调用的方法,可通过实现DisposableBean接口或`destroy-method`属性设置。 此外,Spring 2.5引入了基于注解的配置,可以减少XML配置,提高代码可读性。通过`@Component`、`...

    spring bean life cycle

    3. **初始化**:在属性注入完成后,Spring会执行Bean实现的初始化回调方法,这些方法可以通过实现`InitializingBean`接口的`afterPropertiesSet()`方法或者使用`init-method`属性来指定。此外,还可以通过配置`@...

    spring面试总结

    - 销毁回调:在容器关闭时,调用`DisposableBean`接口的`destroy`方法或自定义的销毁方法。 掌握这些核心概念对于深入理解和使用Spring框架至关重要,它们有助于编写更高效、可维护的代码,并在面试中展示出扎实的...

    Spring框架中Bean的生命周期 Spring中Bean有几种作用域

    3. **初始化**:在实例化和属性注入后,Spring调用Bean的初始化回调方法。这些方法可以通过以下方式定义: - `@PostConstruct`注解的方法:当容器调用该注解的方法时,表明Bean的初始化完成。 - `InitializingBean...

    spring-hook-test.rar

    5. **Spring生命周期回调**:除了上述的`@PostConstruct`和`@PreDestroy`,Spring还提供了一些其他的生命周期回调,如`SmartLifecycle`接口,允许在应用启动和停止时控制Bean的启动和停止顺序。`@Application...

    Spring bean 管理

    - Bean的生命周期过程包括实例化、属性赋值、BeanNameAware和BeanFactoryAware接口方法调用、BeanPostProcessor接口方法调用、InitializingBean和DisposableBean接口方法调用等。 5. Spring的属性注入: Spring...

    Spring管理的Bean的生命周期

    总之,Spring管理的Bean生命周期包括创建、初始化、活跃使用和销毁四个主要阶段,通过各种回调方法、接口和注解,我们可以对Bean的行为进行自定义,以满足不同应用场景的需求。深入理解这些机制,有助于我们更好地...

    Spring Bean 加载顺序 .

    对于Singleton Bean,Spring在容器关闭时会调用`@PreDestroy`注解的方法和实现DisposableBean接口的`destroy()`方法。对于Prototype作用域的Bean,Spring不会自动管理销毁,需要由用户负责。 在实际应用中,理解...

    模拟spring工厂模式底层实现。

    4. **初始化**:Spring会调用Bean的初始化回调方法,即带有@PostConstruct注解的方法或init-method指定的方法。 5. **注册Bean**:将创建好的Bean实例放入BeanFactory或ApplicationContext中,以便后续的查找和引用...

    简易实现Spring流程代码

    3. 初始化回调:当Bean实例化并注入属性后,Spring会调用`@PostConstruct`注解的方法,执行Bean的初始化逻辑。 4. AOP代理:如果Bean实现了接口,Spring默认使用JDK动态代理;如果没有接口,Spring会使用CGLIB代理...

Global site tag (gtag.js) - Google Analytics