简述

主要区别

jar: 打包时会依赖tomcat,与直接运行main方法一样运行,运行过程:

SpringApplication.run()
	-> spring ioc
		->(嵌入式) Servlet容器

war: 上述的启动方法需要覆盖SpringBootServletInitializerconfigure方法,先调用该方法,最终调用SpringApplicationrun(),运行过程:

Servlet容器
	-> SpringBootServletInitializer
		-> SpringApplication.run()
			-> spring ioc

注: SpringBootServletInitializer的作用是替代web.xml的配置