news 2026/5/30 16:15:08

【SpringBoot】搭建Java部署环境 部署项目到Linux服务器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【SpringBoot】搭建Java部署环境 部署项目到Linux服务器

文章目录

  • 搭建Java部署环境
    • 1. apt
    • 2. JDK
    • 3. MySQL
  • 部署Web项目到Linux
    • 一、什么是部署
    • 二、环境配置
      • 数据准备
      • 程序配置文件修改
      • 多平台文件配置
    • 三、构建项目并打包
    • 四、上传Jar包到服务器,并运行
      • 1. 上传Jar包
      • 2. 运行程序
      • 3. 开放端口号
    • 五、验证程序

搭建Java部署环境

1. apt

apt(Advanced Packaging Tool)是Linux软件包管理工具。用于在UbuntuDebian和相关Linux发行版上安装、更新、删除和管理软件包。

列出所有软件包:

aptlist|grep"java"

更新软件包数据库:

sudoapt-getupdate

安装软件包:

sudoaptinstall包名

移除软件包:

sudoaptremove 包名

remove命令将卸载给定的软件包,但可能会留下一些配置文件。如果要删除包含所有配置文件的软件包,请使用purge而不是remove

apt removeapt purge的区别

  • apt remove删除包的二进制文件,它留下了残留的配置文件。
  • apt purge删除与包相关的所有内容,包括配置文件。

如果弄乱了程序的配置,希望从系统中完全清除它的痕迹再重新开始,可以使用apt purge

通常使用apt remove就足够了。

2. JDK

  1. 更新软件包
sudoapt-getupdate
  1. 安装openjdk
#查找jdk包aptlist|grep"jdk"#安装jdksudoaptinstallopenjdk-17-jdk

使用java -version验证是否安装成功。

3. MySQL

  1. 使用apt安装MySQL
#查找安装包aptlist|grep"mysql-server"#安装mysqlsudoaptinstallmysql-server
  1. 查看MySQL状态
sudo systemctl status mysql
  1. MySQL安装安全设置:默认的MySQL设置是不安全的,MySQL安装提供了一个安全脚本,用于解决不太安全的默认选项。
sudomysql_secure_installation
  1. 设置密码:连接mysql服务器
sudomysql
  1. 使用alter user命令修改密码
ALTERUSER'root'@'localhost'IDENTIFIED WITH mysql_native_password BY'密码';

卸载MySQL

#停止mysqlsudosystemctl stop mysql#卸载mysqlsudoapt-getremove--purgemysql-server mysql-client mysql-common#删除 MySQL 配置文件和数据sudorm-rf/etc/mysql /var/lib/mysql#清理残留文件和目录sudoapt-getautoremovesudoapt-getautoclean#验证卸载结果mysql--version

部署Web项目到Linux

一、什么是部署

工作中涉及到的"环境"

  • 开发环境:开发人员写代码用的机器。
  • 测试环境:测试人员测试程序使用的机器。
  • 生产环境(线上环境):最终项目发布时所使用的机器。对稳定性要求很高。

把程序安装到生产环境上,这个过程称为"部署"。也叫"上线"。

一旦程序部署成功,那么这个程序就能被外网中千千万万的普通用户访问到。

换句话说,如果程序有BUG,这个BUG也就被千千万万的用户看到了。

部署过程至关重要,属于程序开发中最重要的一环。一旦部署出现问题,极有可能导致严重的事故(服务器不可用之类的)。

为了防止部署出错,一般公司内部都有一些自动化部署工具(如Jenkins等)。当前我们先使用手工部署的方式来完成部署。

二、环境配置

程序正常运行,需要保证环境和程序都要正确,我们需要先设置环境!

数据准备

按照之前的数据库建表脚本,在服务器上运行,建立相同的表结构。

程序配置文件修改

实际工作中,开发环境,测试环境以及生产环境的配置都是不一样的,比如 mysql 的用户名和密码,我们可以针对不同的环境,设置不同的配置。

多平台文件配置

针对不同平台创建不同的配置文件,要求名字为application-XXX.yml或者application-XXX.properties

固定格式,只有后面的字母可以修改

在配置文件里写不同的内容

application-dev.yml

spring:datasource:url:jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncoding=utf8&useSSL=falseusername:rootpassword:rootdriver-class-name:com.mysql.cj.jdbc.Driver

application-prod.yml

spring:datasource:url:jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncoding=utf8&useSSL=falseusername:rootpassword:123456driver-class-name:com.mysql.cj.jdbc.Driver

在主配置文件application.yml中指定配置文件,并删除数据库相关配置

spring:profiles:active:prod

也可以从Maven中自动读取环境配置变量:

<profiles><profile><id>dev</id><properties><profile.name>dev</profile.name></properties></profile><profile><id>prod</id><properties><profile.name>prod</profile.name></properties></profile></profiles><build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering><!-- 💥💥💥开启占位符替换 --></resource></resources></build>

修改主配置文件application.yml

spring:profiles:active:@profile.name@

三、构建项目并打包

在本地使用maven进行打包

  1. 如果Test代码中有与环境配置相关的操作(比如数据库相关的操作),打包会失败,点击下图①处的图标,可以跳过测试
  2. 点击clean->package

四、上传Jar包到服务器,并运行

1. 上传Jar包

直接拖动打好的jar包到xshell窗口即可完成文件的上传

Xshell可以直接拖动文件到窗口,达到上传文件的目的,如果使用其他客户端,不支持文件的上传,需要借助lrzsz命令。

安装lrzsz

apt-getinstalllrzsz

2. 运行程序

nohupjava-jarblog-spring-0.0.1-SNAPSHOT.jar&
  • nohup:后台运行程序。用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
  • &:让命令在后台执行,终端退出后命令仍旧执行

3. 开放端口号

如果外网需要访问该服务,需要先服务器防火墙开放对应的端口号

本着服务器安全的原则,云服务器上的端口非必要不开启。

比如常见端口号:数据库3306,Redis6379,尽可能避免开放,而是采用其他方式来连接,比如配置隧道的方式

以腾讯云服务器举例:

1)进入防火墙管理页面

2)添加规则

端口号写需要开放的端口号,多个端口号以逗号分割。

五、验证程序

  1. 访问项目:http://IP:Port/blog_login.html,IP改为云服务器的IP,Port改为项目的端口号。

  2. 按照项目的功能进行验证

  • 验证账户注册登录
  • 验证展示博客列表
  • 验证新增博客
  • 验证展示博客内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 17:50:39

Origin科研绘图——直方图

👆关注我👆 每天学点习吧! 更多免费教程和软件 : 直方图 Part.01介绍 直方图(Histogram)是一种用于展示连续型数据分布情况的统计图形。它通过将数据按区间(称为“组”或“组距”)划分,再以矩形柱子的高度或面积表示各区间内数据出现的频数或频率,从而展示数据在不…

作者头像 李华
网站建设 2026/5/25 9:00:52

潜水教学语音提示:水下环境特殊场景的应用探索

潜水教学语音提示&#xff1a;水下环境特殊场景的应用探索 在传统潜水教学中&#xff0c;教练与学员之间的沟通长期受限于物理环境——手势信号有限、视线易被遮挡、复杂指令难以传递。尤其是在深水区或低能见度条件下&#xff0c;一次误解可能带来严重安全隐患。如何实现清晰、…

作者头像 李华
网站建设 2026/5/30 16:14:59

展览会展品解说:参观者扫码聆听深度内容介绍

展览会展品解说&#xff1a;参观者扫码聆听深度内容介绍 在博物馆或艺术展厅里&#xff0c;你是否曾站在一件展品前&#xff0c;望着密密麻麻的说明文字却难以沉浸&#xff1f;又或者&#xff0c;面对租借导览设备的繁琐流程和千篇一律的机械语音&#xff0c;不禁感到索然无味&…

作者头像 李华
网站建设 2026/5/26 21:55:16

前端频繁触发预检?FastAPI CORS配置全攻略,一文搞定

第一章&#xff1a;前端频繁触发预检&#xff1f;FastAPI CORS配置全攻略&#xff0c;一文搞定在使用 FastAPI 构建后端服务时&#xff0c;前端发起跨域请求常会触发浏览器的预检&#xff08;Preflight&#xff09;机制&#xff0c;尤其是当请求包含自定义头部或使用非简单方法…

作者头像 李华
网站建设 2026/5/21 10:35:26

从零实现3D旋转与缩放,Python视角控制实战案例详解

第一章&#xff1a;3D视角控制的理论基础与应用场景3D视角控制是计算机图形学和交互式应用中的核心技术之一&#xff0c;广泛应用于游戏开发、虚拟现实、三维建模和数据可视化等领域。其核心目标是通过数学变换实现用户对三维空间中观察位置和方向的动态调整&#xff0c;从而获…

作者头像 李华
网站建设 2026/5/23 16:30:21

脱口秀段子语音表达:喜剧演员灵感激发新工具

脱口秀段子语音表达&#xff1a;喜剧演员灵感激发新工具 在脱口秀创作的幕后&#xff0c;有一个鲜为人知却至关重要的环节——“试讲”。一个段子写完后&#xff0c;演员往往需要反复念出来&#xff0c;测试节奏、调整停顿、捕捉笑点爆发的最佳时机。但问题是&#xff0c;人脑在…

作者头像 李华