如果我编写了一个简单的servlet应用程序,那么在servlet类中,我扩展了http。这让容器知道我的类是一个servlet,它将管理servlet的“生命周期”。它,doget(),破坏()等。
但是Spring framweork控制器类没有扩展任何servlet类。它是带有自己的自定义方法的jsut一个POJO。现在,我可以使用Requestmapping单独调用这些方法。
但是,这个spring控制器类会被容器以同样的方式管理servlet生命周期吗?
发布于 2013-10-07 23:21:05
但是,这个spring控制器类会被容器以同样的方式管理servlet生命周期吗?
不是直接的。然后Spring应用程序的入口点通常是DispatcherServlet*。这个类扩展(不是直接的,而是通过继承) HttpServlet。您可以像其他任何Servlet一样声明它,通常是在web.xml中。
然而,你不能自己声明它。您提供了一个SpringApplicationContext,DispatcherServlet可以从中获取它将用于处理请求的@Controller注释类。
DispatcherServlet处理程序堆栈非常大。涉及的组件很多。官方的Spring是一个优秀的文档。你应该读一读。
*我说这通常是因为Spring提供了其他处理程序,例如HttpRequestHandler。
补充阅读:
https://stackoverflow.com/questions/19235436
复制相似问题