SpringBoot为什么打包方式是jar包?

作为一名SpringBoot初学者,没有理解SpringBoot为什么打包方式是一个jar包而不是war包?为什么需要设置一个入口函数(main函数)?有专家可以说的通俗易懂一些吗?
ps:我是看的传智的SpringBoot的视频教程。

阅读 9.7k
4 个回答

首先,SpringBoot应用是可以打包成JAR或者WAR形式的。但是官方文档推荐的是打包成JAR,作为一个web应用,为什么会推荐打包成JAR,这是因为SpringBoot内集成了Tomcat服务器,当你启动SpringBoot应用的时候,内置的Tomcat服务器就会启动,加载web应用。这个可以从启动SpringBoot项目的时候从控制台的日志中可以看出,如下:

2017-12-27 00:05:33,182 - Tomcat initialized with port(s): 8080 (http)
2017-12-27 00:05:33,193 - Starting service [Tomcat]
2017-12-27 00:05:33,194 - Starting Servlet Engine: Apache Tomcat/8.5.23
2017-12-27 00:05:33,300 - Initializing Spring embedded WebApplicationContext
2017-12-27 00:05:33,300 - Root WebApplicationContext: initialization completed in 2070 ms

也可以从SpringBoot的依赖中可以看出。其次,WAR包的启动需要Tomcat或者Jetty容器,这就在SpringBoot会引起JAR冲突,需要排除依赖,这样反而违背了SpringBoot简洁的特点。JAR包的启动入口就是main函数

只能说jar或war包都可以

新手上路,请多包涵

小编传值的视频可以分享一下吗?感谢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题