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

时间:2009-09-26 19:32:48

标签: java spring servlets spring-mvc

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

何时创建控制器,何时销毁?它是在多个线程之间共享的吗?可以通过多个请求同时使用它。

3 个答案:

答案 0 :(得分:25)

以下是生命周期的视图:

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

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

答案 1 :(得分:14)

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

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

答案 2 :(得分:9)

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

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

相关问题