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 {}

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