gpt4 book ai didi

spring-mvc - Web 容器如何管理 Spring Controller 的生命周期

转载 作者:行者123 更新时间:2023-12-03 13:18:38 25 4
gpt4 key购买 nike

如果我编写一个简单的 servlet 应用程序,我会在我的 servlet 类中扩展 http servlet。这让容器知道我的类是一个 servlet,它将管理 servlet 的“生命周期”。 init, doget(), destroy() 等

但是 Spring MVC framweork controller 类没有扩展任何 servlet 类。它只是一个具有自己的自定义方法的 POJO。现在我可以使用 Requestmapping 单独调用这些方法。

但是这个 spring Controller 类是否会像管理 servlet 生命周期一样由容器“管理”?

最佳答案

But will this spring controller class be 'mananged' by the container in a same way a servlet lifecyle is managed?

不直接。然后 Spring MVC 应用程序的入口点通常是 DispatcherServlet *。此类扩展(不是直接,而是通过继承)HttpServlet。您可以像声明任何其他 Servlet 一样声明它,通常在 web.xml 中。

但是您并不单独声明它。您提供一个 Spring ApplicationContextDispatcherServlet 可以从中获取 @Controller 注释类,它将用于处理请求。

DispatcherServlet 处理程序堆栈非常大。涉及许多组件。 The official Spring MVC is an excellent document.你应该读一读。

*我说通常是因为 Spring 提供了其他处理程序,例如 HttpRequestHandler


补充阅读:

  1. Spring MVC and Servlets 3.0 - Do you still need web.xml?
  2. What happens behind the scenes of deploying a Spring MVC application to tomcat outside of eclipse?
  3. What's the difference between @Component, @Repository & @Service annotations in Spring?
  4. Spring MVC: difference between <context:component-scan> and <annotation-driven /> tags?
  5. Difference between <context:annotation-config> vs <context:component-scan>
  6. ContextLoadListener and DispatcherServlet

关于spring-mvc - Web 容器如何管理 Spring Controller 的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19235436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com