Bean的作用域在Spring框架中定義了Bean的行為模式。Spring支持六種作用域,它們分別影響Bean在Spring容器中的實例化和共享方式。這些作用域包括:
singleton(單例作用域)。這是Spring的默認作用域。在此作用域下,Bean在Spring IoC容器中只存在一個實例。這意味著,無論何時從容器中請求該Bean,都將返回同一個實例。適合於無狀態的Bean,即那些不需要在請求之間保持狀態的Bean。
prototype(原型作用域)。在該作用域下,每次從容器中請求Bean時,都會創建一個新的實例。這適合於每次請求都需要不同實例的場景,例如那些狀態需要頻繁更改的Bean。
request(請求作用域)。在該作用域下,Bean在HTTP請求之間共享。每個HTTP請求都有自己的Bean實例。這適用於需要在單個HTTP請求內共享狀態的情況。
session(會話作用域)。在該作用域下,Bean在HTTP會話之間共享。每個用戶會話有自己的Bean實例。適用於需要在多個頁面請求之間保持用戶特定狀態的情況。
application(全局作用域)。在該作用域下,Bean在整個Web套用上下文中共享。適用於需要在整個Web套用中保持狀態的情況。
websocket(HTTP WebSocket作用域)。在該作用域下,Bean在HTTP WebSocket的生命周期內共享。適用於需要在WebSocket會話中保持狀態的情況。
理解這些不同的作用域有助於開發者根據套用的需求正確地配置和管理Spring Bean。