控制器在Spring MVC中的生命周期

fly*_*ire 37 java spring servlets spring-mvc

Spring MVC中Controller的生命周期是什么?

控制器何时被创建,什么时候被销毁?它是在多个线程之间共享的吗?是否可以同时使用多个请求.

duf*_*ymo 25

这是生命周期的视图:

http://www.flickr.com/photos/60896767@N00/89101625/sizes/l/

是的,它们由线程/请求共享; 你应该把它们写成线程安全的.他们应该是无国籍的.通常他们会引用Spring服务来完成所有工作.控制器处理Web层的绑定,验证和路由.


Mai*_*guy 14

控制器只是bean,它们可以是单例或原型,它取决于你想要做什么.如果你想要有状态使用原型,默认情况下他们是单身.

http://www.digizenstudio.com/blog/2006/10/09/spring-controllers-with-prototype-scope/


小智 9

Spring MVC的所有控制器都是单例.与其他普通的单例bean一样,控制器实例将在Web应用程序上下文启动后创建,并在它结束之前处理.

即使您为控制器bean定义指定了其他范围(例如,原型),因为spring为控制器提供了某种缓存以提高性能,但只会重复使用第一个获取的控制器实例.