1.springboot项目打包 - SpringBoot项目打成jar包和war包的区别

原文地址:https://blog.csdn.net/qq_21875331/article/details/96278301

该文章参考:https://blog.csdn.net/qq_32331073/article/details/81544061

⚪SpringBoot默认支持很多模板引擎,但是jsp不是默认支持的范围内,jsp只能在war包中使用,另外必须导入JSP的默认渲染servlet:"org.apache.jasper.servlet.JspServlet",打成war包并且支持jsp必须添加的依赖:

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
 
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>8.0.36</version>
            <scope>provided</scope>
        </dependency>
 
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>


⚪无论是Jar还是War都能够使用嵌套容器,jar包使用

nohup java -jar test.jar > test.log 2>&1&
(linux系统)来独立运行,使用tail -f 日志名.file来查看实时日志

⚪但只有war才能部署到外部容器中,且war中必须包含:"src/main/webapp/WEB-INF/web.xml",打包war包时包含wabapp下面内容,打jar包则不包含下main内容

⚪SpringBoot中JSP模板引擎具备使用限制: 
  jsp不能够在jar中使用
  Udertow容器不支持Jsp
  自定义的error.jsp错误页面并不能够复写默认的error handling view,如果你想要自定义错误页面,请尝试其他模板引擎 Custom error pages

⚪如果你将项目打包成jar,就不要使用src/main/webapp目录,打包过程会把wabapp目录给排除

⚪SpringBoot欢迎页支持静态资源和模板引擎,如果项目中不存在""、"/"的Handling请求设置,那么将优先查看静态资源位置中是否存在index.html,否则才会查看index模板,如果都不存在则使用默认欢迎页

⚪Spring5.+中与SpringMVC担负对等作用的SpringWebFlux并不是完全依赖于Servlet API,所以不能将它打包成war更不能使用src/main/webapp目录

⚪用户能够直接访问/src/main/webapp中的静态资源,但是不能访问/src/main/resources中的静态资源,但是Spring提供了ResourceHttpRequestHandler来配置src/main/resources(classpath)下指定访问目录
⚪SpringMvc中的拦截器只能够拦截Handling和/src/mainwebapp下的资源,并不能够拦截/src/main/resources下的资源,用户默认不能直接访问/src/mainwebapp/WEB-INF下的资源,但可以通过forward、redirect进行访问

总结:

1、jar包不包含wabapp目录,jar包主要使用在通用功能,不包含webapp目录,打的jar包可以直接放在其他项目的lib使用,使用内部tomcat启动。

2、war包方式,包含webapp目录,打包时包含webapp目录,使用外部容器进行启动

jar包和war包的区别

Jar包和War包

JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件)。其实jar包就是java的类进行编译生成的class文件就行打包的压缩包而已。里面就是一些class文件。

 

这是jar的里面的class文件。

War包:war是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了,它可以包含 Servlet、HTML页面、Java类、图像文件,以及组成Web应用程序的其他资源,而不仅仅是类的归档文件。

 

  war包的目录结构

 

注:如果一个Web应用程序的目录和文件非常多,那么将这个Web应用程序部署到另一台机器上,就不是很方便了,我们可以将Web应用程序打包成Web 归档(WAR)文件,这个过程和把Java类文件打包成JAR文件的过程类似。利用WAR文件,可以把Servlet类文件和相关的资源集中在一起进行发布。在这个过程中,Web应用程序就不是按照目录层次结构来进行部署了,而是把WAR文件作为部署单元来使用。
区别:WAR文件代表了一个Web应用程序,JAR是类和相关资源的归档文件。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值