传统的web应用在发布之前通常会打成WAR包,然后将WAR包部署到Tomact等容器中去使用,Spring Boot应用可以WAR包形式部署,也可以JAR包形式部署

项目不能一直在idea上运行 必须把它打包到服务器上去。

War包:Tomcat容器中

jar:在JRE/JDK环境下,单独启动即可

JAR包方式:

第一步:

打包工具使用的是Maven

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
      </configuration>
    </plugin>
    <!--打包-->
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

第二步:

运行jar包

java -jar ~~~~~~~

WAR包方式

虽然通过Spring Boot内嵌的Tomcat可以直接运行所打的JAR包,但是有时候我们也会希望通过外部的Tomcat来管理多个项目。由于JAR包在Tomcat中是无法运行的,所以我们需要将项目打成WAR包的形式。
 要想将项目打成WAR包,并可以在Tomcat中运行,需要执行以下两个步骤。

  1. 修改打包方式,并添加Tomcat依赖

将项目pom.xml中元素内的jar修改为war,并在文件中添加Tomcat的依赖配置。其修改和添加的配置信息如下:

<packaging>war</packaging>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-tomcat</artifactId>
  <scope>provided</scope>
</dependency>

上述配置代码中,spring-boot-starter-tomcat是Spring Boot自带的Tomcat依赖,默认会被打到项目的lib包中。当我们将其依赖范围设置为provided时,将产生一个可执行的WAR包,在包中的lib-provided目录会有provided依赖。这样不仅可以部署到Servlet容器启动项目,还可以通过命令行执行java -jar命令来运行此应用。

  1. 创建SpringBootServletInitializer子类,并覆盖其配置方法

要产生一个可部署的war包,还需要提供一个SpringBootServletInitializer子类,并覆盖它的configure()方法。通常我们是把应用的主类(引导类)修改为继承

@SpringBootApplication
public class SpringBootApplicationTest02 extends SpringBootServletInitializer {

  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

    return application.sources(SpringBootApplicationTest02.class);
  }

  public static void main(String[] args) {

    SpringApplication.run(SpringBootApplicationTest02.class, args);
  }

完成这两步后,即可通过package命令将项目打成WAR包,然后将WAR包部署到Tomcat中启动。

启动:将war包放到tomcat的webapps目录下 然后启动tomcat就可以了

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐