在Spring中,Bean的作用域指的是一個Bean實例在應用程序中的生命周期和可見性范圍。Spring框架提供了以下幾種常用的Bean作用域:
Singleton:默認的作用域,每個Spring容器只會創建一個Bean實例,并在整個容器的生命周期內重用該實例。所有對該Bean的請求都會返回同一個實例。
Prototype:每次對該Bean的請求都會創建一個新的實例。每個Bean請求都會返回一個新的Bean實例。
Request:每個HTTP請求都會創建一個新的Bean實例,該實例僅在當前HTTP請求內部可見。在同一個請求中多次調用Bean將會得到同一個實例。
Session:每個用戶會話(即每個瀏覽器會話)都會創建一個新的Bean實例,該實例僅在當前會話內部可見。在同一個會話中多次調用Bean將會得到同一個實例。
Global Session:類似于Session作用域,但只適用于Portlet應用程序。在Portlet容器中,每個用戶會話(即每個用戶登錄)都會創建一個新的Bean實例。
Application:每個ServletContext(即每個Web應用程序)都會創建一個新的Bean實例,該實例在整個Web應用程序范圍內可見。在同一個Web應用程序中多次調用Bean將會得到同一個實例。
根據不同的業務需求,可以選擇合適的作用域來管理Bean實例的創建和生命周期。