H5W3
当前位置:H5W3 > 其他技术问题 > 正文

Spring boot 的 web 项目发布到 tomcat 一定要打包成War包吗?

最近在学Spring boot,用来网上的例子,默认配置是打包成Jar包。
http://start.spring.io/ 网站上提供了生成初始项目的功能,默认选择的是打包方式也是Jar包。

这在idea中进行开发中调试没有任何问题。
现在,我想去修改项目的前端,不想打开ieda。想直接把服务端部署到 tomcat。
在网上搜索了一下部署方式,能找到的都是将打包方式改成war包,然后还要修改配置,还要修改java代码。

对此,我感觉非常奇怪和不解:
既然发布到tomcat要用war包,为什么大家的默认配置却是jar包?
一般正常的流程,我认为从开发转到部署是不应该改代码的的,可以改配置,但也应该避免不必要的修改(比如发布时排除内嵌tomcat包),为什么我看到的发布方案都这样不友好?

对此还有其他疑问:
tomcat上发布Spring boot一定要用war包吗,或者用war包比其他方式好很多,都推荐用war包吗?
可以用jar包发布吗?
我记得tomcat上发布项目也可以不打包的用class文件静态文件,一个文件夹下去就可以了,Spring boot可以这么做吗?那些不好吗?为什么我没有搜索到有人这么做。

回答:

jar 使用内嵌式web server (tomcat,jetty,undertow) ,由spring 初始化 webContext,Servlet,Filter 等

回答:

https://blog.csdn.net/my__Sun…

回答:

不管是打包成jar 还是 war 其实最终运行都是要解压的。 只是tomcat 作为一个 web 容器,当然用war格式打包比较好了。为什么要用war,因为war是在jar基础上专门为web 项目定制的包。

你也可以不打包,直接把整个解压好的项目复制到 webapp的目录下面。

回答:

线上环境tomcat通常会进行参数的优化,比如开启线程池,调大连接数等等,如果以jar包的形式,tomcat都内置了还怎么优化。另外,之前在网上看到有说以jar包形式运行可能会出现不可预知的问题,比如卡顿等。所以通常上线还是打成war包,而开发测试为了方便则直接使用jar形式。

本文地址:H5W3 » Spring boot 的 web 项目发布到 tomcat 一定要打包成War包吗?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址