首页 > 开发 > Java > 正文

详解Spring Boot 部署jar和war的区别

2024-07-13 10:12:17
字体:
来源:转载
供稿:网友

本文介绍了Spring Boot 部署jar和war两种方式的区别,分享给大家,具体如下:

1、 packaging的方式不同,一种设置成jar一种是war

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>cn.vcyber.www</groupId>  <artifactId>vcyber-api</artifactId>  <!--这个地方有所区别 -->  <packaging>war</packaging>  <version>1.0-SNAPSHOT</version>  <name>vcyber-api</name>  <url>http://maven.apache.org</url>

2、 继承的方式不同

Application.java需要继承SpringBootServletInitializer,而jar包不需要。

下面是war继承的方式:

@SpringBootApplication@RestControllerpublic class Application extends SpringBootServletInitializer{  public static void main(String[] args) {    SpringApplication.run(Application.class,args);  }  @Override  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {    return builder.sources(Application.class);  }}

3、spring boot内置tomcat

springboot内置tomcat容器,默认tomcat8的版本,war包部署时,需要在pom文件中有关跟tomcat有关系的jar包scope都设置成provided。

去掉spring boot内置的tomcat代码:

<dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>      <exclusions>        <exclusion>          <artifactId>log4j-over-slf4j</artifactId>          <groupId>org.slf4j</groupId>        </exclusion>        <exclusion>          <groupId>org.springframework.boot</groupId>          <artifactId>spring-boot-starter-tomcat</artifactId>        </exclusion>      </exclusions>    </dependency>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-tomcat</artifactId>      <scope>provided</scope>    </dependency>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表