Discuss / Java / 廖老师,我不是很明白为什么最后还需要再次启动嵌入式Tomcat

廖老师,我不是很明白为什么最后还需要再次启动嵌入式Tomcat

Topic source

启动顺序是,Tomcat启动后,初始化DispatcherServlet,创建了WebApplicationContext,完成所有Bean的初始化,并将容器绑到ServletContext上。最后,还要在Appconfig中启动嵌入式Tomcat,为什么需要启动两个Tomcat呢?

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

哪有两tomcat?

感谢廖老师在百忙之中回复!!! 

是这样的,有一段我不是很理解,您看看文中有这样一段话

最后,我们在AppConfig中通过main()方法启动嵌入式Tomcat:

我的理解是,Tomcat实际上已经启动了,作为servlet容器,Tomcat读取web.xml并初始化DispatcherServlet,然后DispatcherServlet创建IoC容器并自动注册到ServletContext中。

可是,AppConfig的main方法还要启动嵌入式Tomcat。

看起来似乎是,Tomcat启动了两次。

廖雪峰

#4 Created at ... [Delete] [Delete and Lock User]

main启动和复制war包手敲tomcat/start.sh是一样的

廖雪峰

#5 Created at ... [Delete] [Delete and Lock User]

你把main移到一个单独的Start.java

好的廖老师,我明白啦,原来这是两种不同的启动方式,AppConfig的main()方法作为整个项目的主方法启动嵌入式Tomcat,其余注解和方法用来创建各类Bean以及激活Spring MVC等等


  • 1

Reply