1. 周期方法配置
1.1 周期方法概念
我们可以在组件类中定义方法,然后当IoC容器实例化和销毁组件对象的时候进行调用。这两个方法被称为生命周期方法,我们可以在周期方法完成初始化和释放资源等工作。
1.2 周期方法样例
public class Bean {
//周期方法要求: 方法命名随意,但是要求方法必须是 public void 无形参列表
public void init() {
// 初始化逻辑
}
public void clear() {
// 释放资源逻辑
}
}
1.3 XML配置文件
<beans>
<bean id="bean" class="examples.Bean" init-method="init" destroy-method="clear"/>
</beans>
- init-method = “初始化方法名”
- destroy-method = “销毁方法名”
2. 组件作用域配置
2.1 Bean作用域概念
<bean 标签声明Bean,只是将Bean的信息配置给SpringIoC容器。
在IoC容器中,这些<bean 标签对应的信息转成Spring内部 BeanDefinition 对象,BeanDefinition 对象内,包含定义的信息(id,class,属性等等)。
这意味着,BeanDefinition与类概念一样,SpringIoC容器可以可以根据BeanDefinition对象反射创建多个Bean对象实例。
具体创建多少个Bean的实例对象,由Bean的作用域Scope属性指定!
2.2 作用域取值
| 取值 | 含义 | 创建对象的时机 | 默认值 |
|---|---|---|---|
| singleton | 在 IOC 容器中,这个 bean 的对象始终为单实例 | IOC 容器初始化时 | 是 |
| prototype | 这个 bean 在 IOC 容器中有多个实例 | 获取 bean 时 | 否 |
如果是在WebApplicationContext环境下还会有另外两个作用域(但不常用):
| 取值 | 含义 | 创建对象的时机 | 默认值 |
|---|---|---|---|
| request | 请求范围内有效的实例 | 每次请求 | 否 |
| session | 会话范围内有效的实例 | 每次会话 | 否 |
2.3 XML配置文件
<beans>
<bean id="bean" scope="prototype" class="examples.Bean" />
</beans>
- scope的默认值为singleton,可以省略
本文详细介绍了Spring框架中的生命周期方法配置,包括如何在组件类中定义并使用init和clear方法,以及如何通过XML配置文件指定初始化和销毁方法。同时,讨论了Bean作用域的概念,如singleton和prototype的区别,以及它们在XML配置中的应用。

1124

被折叠的 条评论
为什么被折叠?



