簡體   English   中英

何時在 Spring MVC 中為控制器使用請求范圍的 bean 而不是 singleton bean

[英]When to use request scoped beans over singleton beans for Controllers in Spring MVC

是為了確保控制器是線程安全的嗎?

如果上述情況屬實,那么是否有必要通過為每個請求創建 bean 的開銷來 go 而不是使 controller 代碼不依賴實例變量?

您的默認 position 應該使用線程安全的 singleton 控制器。 正如您所說,這部分是出於性能原因,部分是出於良好設計的原因 - 大量有狀態的、請求范圍的 bean 是一團糟。

使用請求范圍的控制器(或其他請求范圍的 bean)是一項特殊要求,只有在您有充分理由這樣做時才應使用它,即您擁有的 bean 的 state 必須是該特定請求的生命周期專用的。

請求范圍的 bean 是 class 的短暫實例,它們將在新請求進入時創建。

Singleton bean 在應用程序的整個生命周期中都存在。 注意:如果您有一個包含多個會話的多用戶應用程序,那么所有用戶都將訪問您的 bean 的同一個實例(如果他們是單例)。

我希望盡可能在 web 應用程序中請求范圍 bean。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM