springboot进阶(11):springboot项目的两种部署方式_springboot 部署方式-程序员宅基地

技术标签: springboot  

前言

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部署更加简单,可以参考

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011628753/article/details/123931630

智能推荐

《Tracking without bells and whistles》翻译和笔记-程序员宅基地

文章浏览阅读677次。机器翻译,日后再核对.摘要The problem of tracking multiple objects in a video sequence poses several challenging tasks. For tracking-bydetection, these include object re-identification, motion prediction and dealing with occlusions. We present a tracker (without b._tracking without bells and whistles

xtrabackup备份脚本_xtrabackup stream备份脚本-程序员宅基地

文章浏览阅读380次。#!/usr/bin/env bash# 配置信息:# mysql 用户名user=root# mysql 密码password='Bgview@2019'# socketsocket=/mysqldata/sgb/data19104/sgrdb19104.sock# 备份路径backup_dir=/mysqldata/mysqlbackup/sgrdb/backup19104# 数据目录datadir=/mysqldata/sgb/data19104# percona-xtrab._xtrabackup stream备份脚本

QT——信号槽-程序员宅基地

文章浏览阅读80次。结合教程,写出如下关于信号槽的代码,将教程中信号槽两种方式写入同一个界面中。#include "mainwindow.h"#include &lt;QApplication&gt;#include &lt;QPushButton&gt;#include &lt;QDebug&gt;#include &lt;QHBoxLayout&gt;int main(int argc, char..._qt 继承qbject 多线程

JSON学习(一)——了解JSON-程序员宅基地

文章浏览阅读201次。简要了解JSON:JavaSrcipt Object Notation:轻量级的数据交换格式。前后端分离开发中作为数据传递与交互的一种数据格式代码// 对象{ key1: value1, key2: value2, ...}// 数组[ { key1: value1, key2: value2 }, { key3: value3, key4: value4 }]// 定义一个JSON对象var obj ={ 1:"value1", "2":"valu_了解json

30 分钟理解 CORB 是什么-程序员宅基地

文章浏览阅读209次。写在前面前些日子在调试 bug 的时候,偶然发现这么一个警告:Cross-Origin Read Blocking (CORB) blocked cross-origin response https://www.chromium.org/ with MIME type text/html. See https://www.chrom..._corb .net

浏览器兼容问题_适用于ie8的文字滚动-程序员宅基地

文章浏览阅读151次。css兼容问题:默认的内外边距不同问题:各个浏览器默认的内外边距不同解决:*{margin:0;padding:0;}水平居中的问题问题:设置 text-align: centerie6-7文本居中,嵌套的块元素也会居中ff /opera /safari /ie8文本会居中,嵌套块不会居中解决:块元素设置1、margin-left:auto;margin-righ..._适用于ie8的文字滚动

随便推点

Windows下64位驱动调试方法_windivert 64位-程序员宅基地

文章浏览阅读4.8k次,点赞2次,收藏8次。尴尬的境地 囧很多时候,我们写的驱动是64位的,而这种64位驱动是不可以在代码中加入_asm int 3 中断来实现在合适的地方进入中断。因为vs此时会报:error C4235: 使用了非标准扩展: 不支持在此结构上使用“_asm”关键字 。而目标平台又要求一定是64位的,因此这就很尴尬了。好在,使用WinDBG可以解决这个问题。核心原理是WinDbg向gdb一样支持 按函数名下断点。因此..._windivert 64位

程序员必须会-mybatis框架的概述、搭建和测试_程序里必有mybatis吗-程序员宅基地

文章浏览阅读2k次。mybatis框架的概述、搭建和测试框架?框架就是:将很多的基础功能进行封装,程序员更关注于业务的开发.mybatis背景:原来是apache的一个开源项目,2010年转投谷歌,从3.0x版本开始改名为mybatis.(了解即可)MyBatis 是一款优秀的java持久层框架。这也就是你给别人说你用到了mybatis框架,就说明你是用Java写的代码.***解释一下持久层:持久层字面理解就是要将数据保存下来,我们的数据比如新增了一条学生记录,要把他保存,就需要通过持久层.即将java对象转化到_程序里必有mybatis吗

图形界面管理笔记_gnome操作界面和windows操作界面有哪些相同和不同之处-程序员宅基地

文章浏览阅读129次。图形界面管理X-Window图形界面发展史1984年美国麻省理工学院与迪吉多(DEC)电脑公司合作制定了Athena计划,在UNIX系统上发展一个分散式的视窗环境,这便是X-Window的第一个版本。1986年,麻省理工学院开始发行X-Window,随后X-Window很快就成为UNIX系统的标准视窗环境。1988年1月成立了一个非营利性的X联盟,负责制定X-Window的标准,并继续发..._gnome操作界面和windows操作界面有哪些相同和不同之处

【Pytorch】谈谈我在PyTorch踩过的12坑-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏8次。点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢作者 |hyk_1996来源:程序员宅基地编译:程序员大白公众号1. nn.Module.cud..._got input size {}".format(size)

js实现刷新页面图片随机变化_刷新之后swiper图片随机显示-程序员宅基地

文章浏览阅读5.4k次,点赞2次,收藏11次。刷新页面图片随机变化刷新页面,页面其他地方保持不变,图片变化,思路就是取图片路径,将图片路径用字符串数组保存,随机数取其下标,这样图片就能随机变化了,然后就要将获得的图片路径在页面上随机展示,这里我是这么做的,直接贴代码://这是js代码function randomWord (randomFlag, min, max) { let str1 = "", range ..._刷新之后swiper图片随机显示

力扣刷题顺序(数据结构和算法)-程序员宅基地

文章浏览阅读9.2k次,点赞33次,收藏348次。按照题目类别结构化地刷题的速度不仅更快,而且可以在刷完一类题之后进行总结。对于水平较高的小伙伴们来说,按照推荐的顺序刷,可以在 200 小时内刷完 500 多题。对于萌新们来说,按照推荐顺序刷,能更好地掌握数据结构与算法基础。题目分类及刷题顺序推荐一. 数组题目分类 题目编号数组的遍历 485、495、414、628统计数组中的元素 645、697、448、442、41、274数组的改变、移动 453、665、283二维数组及滚动数组 118、119、661、5..._力扣刷题顺序

推荐文章

热门文章

相关标签