【问题标题】:Controller's life-cycle in Spring MVCSpring MVC 中控制器的生命周期
【发布时间】:2010-12-01 16:56:12
【问题描述】:

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

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

【问题讨论】:

    标签: java spring servlets spring-mvc


    【解决方案1】:

    这是生命周期的视图:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-06-11
          • 1970-01-01
          • 2016-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多