前言

springboot项目开发完成后续,需要部署到服务运行。
springboot项目运行有两种方式,一种是jar包(官方推荐),一种是war包。

如何发布项目

第一种 jar方式部署(默认方式)

  1. 创建一个springboot 项目, 选择springboot web组件。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 创建一个HelloController
package com.it2.springbootweb01;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/hello")
public class HelloController {

    @GetMapping("/sayHello")
    public String sayHello(){
        return "hello";
    }
}

在这里插入图片描述
3. 打包项目
在这里插入图片描述
4. 找到刚刚打包的jar包
在这里插入图片描述
5. 进入到jar文件所在的目录运行。(在linux系统下运行命令一样,切换到jar所在目录,并执行java -jar命令)

java -jar ./springboot-web01-0.0.1-SNAPSHOT.jar

在这里插入图片描述

  1. 测试访问http://localhost:8080/hello/sayHello
    在这里插入图片描述

第二种 war包方式运行

继续用刚刚创建的工程,进行小的调整。

  1. 将启动类继承SpringBootServletInitializer
    在这里插入图片描述
  2. 重写configure方法
    在这里插入图片描述
@Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(你自己的启动类名称.class);
    }
  1. 修改pom文件的打包方式
<packaging>war</packaging>

在这里插入图片描述
4. 再来打包
在这里插入图片描述
5. 将war文件复制到tomcat的webapps目录下,启动tomcat 即可。
http://localhost:8080/springboot-web01-0.0.1-SNAPSHOT/hello/sayHello
在这里插入图片描述

关于文件名问题

看到这项目运行,访问路径还加了版本号,明显很扎眼。解决办法有两种

  • 方法一 在pom文件配置打包名称(推荐)
<!--指定文件打包名称-->
        <finalName>springboot-web01</finalName>

在这里插入图片描述
在这里插入图片描述
再次将打包后的文件复制到tomcat的webapps目录下,并启动tomcat,访问地址:
http://localhost:8080/springboot-web01/hello/sayHello
在这里插入图片描述

  • 方法二 将打包文件复制到tomcat的webapps目录下,然后手动改名。
    操作略。

关于springboot线上部署

我们打包和部署虽然,很方便,但是在linux系统上,我们最起码还要安装jdk,配置redis等操作。这样在服务器部署仍然要花费比较多的时间。
小项目(只有几台或者单台):
可以使用docker部署即可。
大项目(微服务架构+服务器比较多):
可以采用docker+k8s的模式进行部署。
单体的项目:
直接docker搞定。
其实上面的这个简单的springboot项目,才linux上使用docker部署更加简单,可以参考

Logo

苏州本地的技术开发者社区,在这里可以交流本地的好吃好玩的,可以交流技术,可以交流招聘等等,没啥限制。

更多推荐