Bean的作用域

发布时间 2023-10-03 11:59:28作者: 小强不砍树

前言

在软件开发中,Bean的作用域指的是对象实例在应用程序中的生命周期和可见范围。在Java中,Bean是指在Spring框架中由Spring容器进行管理的Java对象。常用的Bean的作用域有:Singleton、Prototype、Request、Session、Global Session。

Singleton

单例作用域:在整个应用程序中只有一个Bean实例,由Spring容器负责管理和维护。无论何时请求该Bean,都返回同一个实例。

注意:在Spring框架中,默认使用该作用域。

Prototype

原型作用域(多例作用域):每次请求或依赖注入时,都会创建一个新的Bean实例。每个实例都是独立的,可以有不同的状态。

Request

请求作用域:每个HTTP请求都会创建一个新的Bean实例,适用于Web应用程序。在同一次HTTP请求中,多个组件之间共享同一个实例(仅限于Spring MVC中)。

Session

会话作用域:在同一个HTTP会话中,多个请求之间共享同一个Bean实例,不同会话中的Bean实例是独立的(仅限于Spring MVC中)。

Global Session

全局会话作用域:在多个Portlet间共享一个Bean实例,类似于Session作用域,但作用域范围更大(仅限于Portlet环境)。

总结

作用域的选择取决于应用程序的需求和设计。Singleton作用域适用于需要在整个应用程序范围内共享的对象,而Prototype作用域适用于每次请求或注入时需要创建新的对象的场景。Request和Session作用域通常用于Web应用程序中,用于在请求之间共享数据。。默认情况下,Spring Bean使用Singleton作用域,但在需要时,可以通过在Spring配置文件或注解来指定其他的作用域。