Spring MVC控制器是单例吗?

我有一个关于Spring 3 MVC 的查询@Controllers。收到请求时,容器是否为每个请求(类似于Struts 2中的Action -ThreadLocal ActionContext)创建控制器的新实例,还是单个实例响应所有请求?默认情况下,控制器bean是上下文中的单例吗?

Spring 3 MVC应用程序有哪些准则/最佳实践?这些设置可以配置吗?应该配置这些吗?如果我的环境是集群环境,它是否会发生很大变化-我猜应该不会改变,因为jvm /容器会有所不同-但是会欢迎一些权威性的建议。

我已经阅读了Spring文档,但可能错过了。任何“这就是我们实现那种”答案/指针/链接的方式都会有所帮助,谢谢。

回答:

像servlet一样,Spring控制器是单例的(每个Web应用程序每个控制器只有一个实例)。通常,更改此行为没有任何意义(如果可能的话)。有关常见陷阱,请参阅关于servlet的线程安全性,这也适用于控制器。

如果你的应用程序是集群的,则应尽可能避免状态。控制器中的状态将需要同步以避免线程问题。另外,你可能会在服务器之间复制该状态-非常昂贵且麻烦。

以上是 Spring MVC控制器是单例吗? 的全部内容, 来源链接: utcz.com/qa/419306.html

回到顶部