Spring 支持五種作用域,分別是singleton、prototype、request、session 和 global session。
| 作用域 | 說明 |
| singleton | (默認作用域)單例模式,每個 Spring IoC 容器只會實例化一個使用 singleton 定義的 Bean。 |
| prototype | 原型模式, |
| request | 對于每次 HTTP 請求,使用 request 定義的 Bean 都產生一個新實例只有在 Web 應用中使用 Spring 時,該作用域才有效。 |
| session | 對于每次 HTTP 會話,使用 session 定義的 Bean 都產生一個新實例。只有在 Web 應用中使用 Spring 時,該作用域才有效。 |
| global session | 只有在 Web 應用中使用 Spring 時,該作用域才有效。 |
默認情況下,Spring IoC 容器啟動后,在初始化過程中,會以單例模式創建并配置所有使用 singleton 定義的 Bean 的實例。對于每個配置的 Bean,整個 Spring 容器共享唯一的實例。容器會負責跟蹤 Bean 實例的狀態和維護 Bean 實例的生命周期行為。每次通過容器獲取singleton 定義的 Bean 時,容器返回的都是同一個實例。

Spring IoC 容器的初始化過程中,不會創建使用prototype 定義的 Bean 的實例。容器不會負責跟蹤 Bean 實例的狀態,也不會負責維護 Bean 實例的生命周期行為。每次通過容器獲取prototype 定義的 Bean 的實例時,容器都會創建一個新的實例返回。

新聞熱點
疑難解答