第1个回答 2022-07-11
在IT软件界,Java一直占据着大半壁江山,Java的生态圈环境很好,有着很多优秀的框架,而 Spring Boot 作为Spring框架中的代表,这几年也越来越火。
Spring Boot是用来简化Spring应用的配置和开发过程的,此框架采用了“约定优于配置”的理念, 免去了繁琐的XML配置 ,使我们开发项目更简单。而且Spring Boot提供了两种项目打包方式:生成war文件、生成可执行的jar文件,很多Java开发者不清楚这两种项目打包方式的区别,生产环境该选哪种方式呢?
1、war包方式部署
war包其实是打包后的Java Web工程, 本质上是个压缩包 ,里面包含了很多目录及文件,我们把war包放入Tomcat这类容器中启动后,war包就会自动解压出一个同名的文件夹来。
注意:Spring Boot项目如果要打包成war包来部署,是需要修改项目入口文件代码的。另外由于Spring Boot内置了Tomcat容器,所以打包成war包时要将内置的Tomcat依懒排除掉。
2、可执行jar文件方式部署
Spring Boot框架默认的打包部署方式是生成一个可执行的jar文件,无论项目多么复杂,依懒包有多少,最终只有一个jar文件(有些可能有外置的配置文件),在任何一台装有JRE/JDK环境的服务器上可以直接以 java -jar xx.jar 这种方式来运行(其实是靠内置的Tomcat来运行的),十分方便。
可执行jar文件方式部署是我们推荐的 ,特别是在微服务场景下部署更便捷。
无论是war方式还是jar方式,本质上差别并不大。在生产环境下还是要选择合适的方式。
综上,如果服务器配置高、节点多、微服务方式,建议选择jar方式部署;如果服务器配置跟不上,建议选择war方式部署(省内存空间)。