Spring @Controller生命周期

Pom*_*rio 1 model-view-controller spring multithreading controller spring-mvc

我是Spring MVC的新手,想知道它如何处理请求,更具体地说:

  1. 我想知道Spring @ Controller的生命周期与Servlet的生命周期有什么关系?
  2. 我还想更好地了解多线程环境的最佳实践(例如,在Servlet中,当对象从池中重用时,多个HTTP请求可见的类属性)?

Boz*_*zho 6

控制器(如任何弹簧bean)具有范围.

最好你的控制器应该是范围singleton.在这种情况下,它非常像servlet,并且:

  • 它们在应用程序上下文启动期间只创建一次(并在销毁上下文时销毁)
  • 你不应该使用任何实例变量(因为这不是线程安全的)

如果您的控制器范围是requestsession,那么您可以拥有实例变量,并在每个新请求/会话上创建控制器的实例.