`
- 浏览:
75363 次
- 性别:
- 来自:
杭州
-
一.概述
在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方法,也是没有意义的。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
3. **实现InitializingBean和DisposableBean接口** 如果你的类实现了`org.springframework.beans.factory.InitializingBean`接口,那么Spring会在所有属性注入完成后调用`afterPropertiesSet()`方法。同样,如果...
`DisposableBean`接口则包含一个`destroy()`方法,这个方法会在Bean即将被销毁之前调用,用于清理资源、关闭连接等。当Spring容器关闭或者Bean不再需要时,就会调用这个方法。同样,我们可以这样实现`DisposableBean...
- Bean的生命周期过程包括实例化、属性赋值、BeanNameAware和BeanFactoryAware接口方法调用、BeanPostProcessor接口方法调用、InitializingBean和DisposableBean接口方法调用等。 5. Spring的属性注入: Spring...
在该接口中,只定义了一个 destroy() 方法,在 ApplicationContext 被销毁前,Spring 将依次调用 Bean 容器中实现了 DisposableBean 接口的 destroy() 方法。 在 XML 配置文件中指定回调方法 在 XML 配置文件中,...
- 实现了DisposableBean接口的Bean,可以自定义destroy方法来定义销毁行为。 除此之外,还可以通过XML配置文件或者注解的方式来配置初始化和销毁的方法。例如,可以使用init-method和destroy-method属性来指定相应...
BeanPostProcessor 是一个非常重要的接口,它提供了钩子函数,用来动态扩展和修改 Bean。BeanPostProcessor 接口提供了两个方法:postProcessBeforeInitialization 和 postProcessAfterInitialization。 ...
- **内部Bean**: 一个Bean可以作为另一个Bean的一个属性,称为内部Bean。 - **1.4.3 使用`depends-on`**: 可以通过`depends-on`属性指定当前Bean依赖于其他Bean,确保依赖的Bean先被创建。 - **1.4.4 惰性初始化...
1. 使用`init-method`属性,指明一个方法在bean所有依赖关系设置完成后自动执行,而无需实现Spring特定接口,降低了代码耦合。 ```xml ``` 2. 实现`InitializingBean`接口,但这样会使代码与Spring耦合,方法是`...
在给定的描述中提到,已经包含了Quartz 1.5.2的jar包,但请注意,这是一个较旧的版本,可能不支持最新的Spring特性。为了获得更好的兼容性和新特性,建议使用更新版本的Quartz库。 2. **配置Spring**:在Spring的...
需要注意的是,如果同一个Bean同时使用注解和接口方式定义初始化和销毁方法,执行顺序可能会有所不同。根据Spring的源码,`afterPropertiesSet()`方法会先于`initMethod()`执行,而`destroyMethod()`会先于`destroy...
值得注意的是,BPP的方法返回值是Object类型,这意味着我们有机会返回一个新的Bean实例,而不仅仅是修改状态。 与`InitializingBean`和`DisposableBean`接口不同,这些接口是在Bean的初始化和销毁阶段调用的,它们...
depends-on属性用于指定一个Bean依赖于另一个Bean,当一个Bean被创建时,Spring会先确保它所依赖的Bean已经创建完毕。 #### 3.5 按需实例化Bean Spring提供了按需实例化(lazy initialization)机制,只有在首次...
我们需要继承 Spring 接口 InitializingBean/DisposableBean,其中 InitializingBean 用于初始化动作,而 DisposableBean 用于销毁之前清理动作。 ```java @Service public class HelloService implements ...
Java提供了 `InitializingBean` 和 `DisposableBean` 接口,它们分别包含 `afterPropertiesSet` 和 `destroy` 方法。当bean实现了这些接口,Spring会在适当的时候自动调用相应的方法。 ```java public class ...