我试图理解Spring框架容器和Servlet之间的管道。我刚刚开始并相信Spring MVC应用程序可以使用servlet,portlet等,
当启动使用servlet的spring应用程序时,我相信应用程序的世界始于一个spring容器的创建,它的主要功能(不完全是主要的,但类似的东西)创建bean,缝合它们等等。然后创建一个servlet,即DispatcherServlet,它开始接受连接并将请求路由到spring应用程序中的其他控制器。由于Spring容器不主动管理servlet,因此DispatchServlet不能被视为弹簧容器的一部分。以上对我的理解是否正确?
如果有人能够更好地发挥Spring框架和(比如)和嵌入式servlet容器(如Tomcat / getty)之间的管道,那将是很棒的。谢谢!
答案 0 :(得分:0)
Spring本身不是一个容器,它是一个框架。它确实有一个IoC容器,而且这个容器是基于bean和上下文构建的。例如,在Web应用程序中,有两种情况:
因此,对于您的问题,调度程序servlet只是一个标准的servlet,但它有自己的spring IoC上下文,这是控制器,视图模板等声明和连接的地方。如果你看一下spring web应用程序的web.xml,你会看到类似这样的内容......
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
这只是一个标准的servlet声明,你可以为它提供用于创建自己的IoC上下文的xml文件。
那清楚了吗?