[英]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.