Spring 中 Bean 的作用域(必背)

Spring 中 Bean 的作用域(必背)

Bean 的作用域,这里的作用域并不是程序代码中,变量的作用范围,而是指对象的创建的模式。Spring 5 之后有如下几个方式:

singleton (default)

指的是一个 Spring 容器中仅有一个实例,即改 Bean 是单例存在的。是 Spring 中的默认方式

prototype

和 singleton 想反,每次从容器获取对象,都是获得一个新的实例。

request

这个作用域只有在 web 项目中有效,指的是同一个 http 请求中,获取容器中的实例都是单例的。

session

同样的,只在 web 项目中有效,在每一次 session 的生命周期中,获取的容器中的实例都是单例的。

application

只在 web 项目中有效,在每一次 Servlet 上下文的生命周期中,获取的容器中的实例都是单例的。

websocket

只在 web 项目中有效,在每一次 WebSocket 的生命周期中,获取的容器中的实例都是单例的。

对于某个对象,指定作用域,可以使用 Scope 注解,如下:

Java

@Component @Scope("prototype") public class BeanClass { }

1234

@Component@Scope("prototype")public class BeanClass {}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章