`
bolinyang
  • 浏览: 75363 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于DisposableBean接口一个注意点

 
阅读更多
一.概述

在Spring中bean是一个非常重要的概念,那么关于什么是bean,首先bean是一个JAVA对象,但是并不是说所有的bean都是JAVA对象,这个JAVA对象是在最初设计的时候提出的一些编程模型,这些模型可以扩展复用,模型之间耦合度很低,模型本身内聚度很高。bean有单例的,也有多例的。单例bean只有一个,每次调用getBean方法拿到的是同样一个对象的引用,多例的bean有多份,每次调用getBean方法后都是重新创建一个bean来使用。从这点我们就可以知道多例bean和单例bean的生命周期会不一样的,因为多例bean的生命周期不会由Spring容器来管理,说的简单一点,多例bean其实就是自生自灭的,和容器没有关系。

二.关于DisposableBean接口

在概述中我们已经提及到了一个点,就是多例bean的生命周期不归Spring容器来管理,这里的DisposableBean中的方法是由Spring容器来调用的,所以如果一个多例实现了DisposableBean是没有啥意义的,因为相应的方法根本不会被调用,当然在XML配置文件中指定了destroy方法,也是没有意义的。
分享到:
评论

相关推荐

    14、加载spring启动首先进入的类方法注解1

    3. **实现InitializingBean和DisposableBean接口** 如果你的类实现了`org.springframework.beans.factory.InitializingBean`接口,那么Spring会在所有属性注入完成后调用`afterPropertiesSet()`方法。同样,如果...

    详解常用的Spring Bean扩展接口

    `DisposableBean`接口则包含一个`destroy()`方法,这个方法会在Bean即将被销毁之前调用,用于清理资源、关闭连接等。当Spring容器关闭或者Bean不再需要时,就会调用这个方法。同样,我们可以这样实现`DisposableBean...

    Spring bean 管理

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

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

    在该接口中,只定义了一个 destroy() 方法,在 ApplicationContext 被销毁前,Spring 将依次调用 Bean 容器中实现了 DisposableBean 接口的 destroy() 方法。 在 XML 配置文件中指定回调方法 在 XML 配置文件中,...

    Spring.pdf

    - 实现了DisposableBean接口的Bean,可以自定义destroy方法来定义销毁行为。 除此之外,还可以通过XML配置文件或者注解的方式来配置初始化和销毁的方法。例如,可以使用init-method和destroy-method属性来指定相应...

    架构师面试题系列之Spring面试专题及答案(41题).docx

    BeanPostProcessor 是一个非常重要的接口,它提供了钩子函数,用来动态扩展和修改 Bean。BeanPostProcessor 接口提供了两个方法:postProcessBeforeInitialization 和 postProcessAfterInitialization。 ...

    spring-core.pdf

    - **内部Bean**: 一个Bean可以作为另一个Bean的一个属性,称为内部Bean。 - **1.4.3 使用`depends-on`**: 可以通过`depends-on`属性指定当前Bean依赖于其他Bean,确保依赖的Bean先被创建。 - **1.4.4 惰性初始化...

    spring学习笔记

    1. 使用`init-method`属性,指明一个方法在bean所有依赖关系设置完成后自动执行,而无需实现Spring特定接口,降低了代码耦合。 ```xml ``` 2. 实现`InitializingBean`接口,但这样会使代码与Spring耦合,方法是`...

    Spring整合Quartz

    在给定的描述中提到,已经包含了Quartz 1.5.2的jar包,但请注意,这是一个较旧的版本,可能不支持最新的Spring特性。为了获得更好的兼容性和新特性,建议使用更新版本的Quartz库。 2. **配置Spring**:在Spring的...

    spring启动加载程序的几种方法介绍

    需要注意的是,如果同一个Bean同时使用注解和接口方式定义初始化和销毁方法,执行顺序可能会有所不同。根据Spring的源码,`afterPropertiesSet()`方法会先于`initMethod()`执行,而`destroyMethod()`会先于`destroy...

    一篇文章带你玩转Spring bean的终极利器

    值得注意的是,BPP的方法返回值是Object类型,这意味着我们有机会返回一个新的Bean实例,而不仅仅是修改状态。 与`InitializingBean`和`DisposableBean`接口不同,这些接口是在Bean的初始化和销毁阶段调用的,它们...

    spring-reference

    depends-on属性用于指定一个Bean依赖于另一个Bean,当一个Bean被创建时,Spring会先确保它所依赖的Bean已经创建完毕。 #### 3.5 按需实例化Bean Spring提供了按需实例化(lazy initialization)机制,只有在首次...

    Spring Bean初始化及销毁多种实现方式

    我们需要继承 Spring 接口 InitializingBean/DisposableBean,其中 InitializingBean 用于初始化动作,而 DisposableBean 用于销毁之前清理动作。 ```java @Service public class HelloService implements ...

    详解java代码中init method和destroy method的三种使用方式

    Java提供了 `InitializingBean` 和 `DisposableBean` 接口,它们分别包含 `afterPropertiesSet` 和 `destroy` 方法。当bean实现了这些接口,Spring会在适当的时候自动调用相应的方法。 ```java public class ...

Global site tag (gtag.js) - Google Analytics