阅读量:0
ChatGPT:Spring Boot 的 Spring Bean 是单例模式吗?
在 Spring Boot 中,默认情况下,Spring Bean 是单例模式的。这意味着 Spring 容器中只有一个 Bean 实例,而每次请求这个 Bean 时,都会返回同一个实例。这种方式可以节省资源并提高效率。
然而,你可以通过使用 @Scope
注解来改变 Bean 的作用域,从而使其在不同的情况下有不同的实例。常见的作用域包括:
@Scope("singleton")
:单例模式(默认)@Scope("prototype")
:每次请求都创建一个新的实例@Scope("request")
:每次 HTTP 请求都会创建一个新的实例(在 web 环境下有效)@Scope("session")
:每个 HTTP 会话都会创建一个新的实例(在 web 环境下有效)
例如,如果你想让一个 Bean 采用原型模式,可以这样定义:
import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; @Component @Scope("prototype") public class MyPrototypeBean { // 类的实现 }
这样,每次请求 MyPrototypeBean
时,Spring 都会创建一个新的实例。