Spring bean的作用域和生命周期
时间: 2023-07-17 20:46:48 浏览: 52
Spring bean的作用域有以下几种:
1. singleton(默认):一个Spring容器中只会创建一个Bean实例,所有的请求都会返回同一个实例。
2. prototype:每次请求都会创建一个新的Bean实例。
3. request:每个HTTP请求都会创建一个新的Bean实例,在同一个HTTP请求范围内,多次调用该Bean时返回的是同一个实例。
4. session:每个HTTP Session都会创建一个新的Bean实例,在同一个Session范围内,多次调用该Bean时返回的是同一个实例。
5. global-session:全局Session作用域,仅在使用portlet context时才有意义。
Spring bean的生命周期包含以下几个阶段:
1. 实例化:Spring容器通过反射机制创建一个Bean实例。
2. 属性赋值:Spring容器将配置文件中的属性值和引用传递到Bean实例中。
3. 初始化:如果实现了InitializingBean接口,则调用afterPropertiesSet()方法。如果在配置文件中配置了init-method属性,则调用指定的初始化方法。
4. 使用:Bean实例可以被应用程序使用。
5. 销毁:如果实现了DisposableBean接口,则调用destroy()方法。如果在配置文件中配置了destroy-method属性,则调用指定的销毁方法。
相关问题
springbean的作用域和生命周期
Spring Bean 的作用域和生命周期是 Spring 框架中非常重要的概念。
作用域:Spring Bean 的作用域指的是 Bean 实例的创建和销毁方式。Spring 支持多种 Bean 的作用域,包括 Singleton、Prototype、Request、Session、Global Session 等。
- Singleton:单例模式,一个 Bean 实例在整个应用中只被创建一次。
- Prototype:原型模式,每次从容器中获取 Bean 时都会创建一个新的实例。
- Request:每个 HTTP 请求都会创建一个 Bean 实例,该 Bean 实例仅在当前 HTTP 请求内有效。
- Session:每个 HTTP Session 都会创建一个 Bean 实例,该 Bean 实例仅在当前 HTTP Session 内有效。
- Global Session:该作用域仅适用于基于 Portlet 的 Web 应用,每个全局 HTTP Session 都会创建一个 Bean 实例,该 Bean 实例仅在当前全局 HTTP Session 内有效。
生命周期:Spring Bean 的生命周期指的是 Bean 实例的创建、初始化和销毁过程。Spring 容器负责管理 Bean 的生命周期,Bean 生命周期包括以下几个阶段:
- 实例化:创建 Bean 实例。
- 属性赋值:将 Bean 实例的属性值注入到 Bean 实例中。
- 初始化:调用 Bean 的初始化方法。
- 使用:Bean 实例可以被容器和其他 Bean 使用。
- 销毁:容器关闭或者手动销毁 Bean 实例时,调用 Bean 的销毁方法。
Spring Bean 的生命周期可以通过 BeanPostProcessor、InitializingBean 和 DisposableBean 接口、@PostConstruct 和 @PreDestroy 注解等方式进行定制。
spring bean的作用域和生命周期
Spring Bean的作用域和生命周期是指Bean在容器中的生存期和使用范围。作用域包括单例(Singleton)、原型(Prototype)、请求(Request)、会话(Session)、全局会话(Global Session),而生命周期包括实例化、填充属性、调用初始化方法、调用BeanPostProcessor的前置和后置处理方法、调用自定义的销毁方法等。通过配置Bean的作用域和生命周期,可以更好地控制Bean的创建和销毁,避免资源浪费和内存泄漏问题。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)