news 2026/4/15 22:39:54

【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/4/11 11:08:22

外卖骑手接单提示音:VoxCPM-1.5-TTS定制专属提醒语调

外卖骑手接单提示音&#xff1a;VoxCPM-1.5-TTS定制专属提醒语调 在城市街头穿梭的外卖骑手&#xff0c;每天要处理数十甚至上百个订单。当手机突然响起“您有一笔新的外卖订单”时&#xff0c;他们必须在车流中迅速判断是否为自己的任务——可问题是&#xff0c;几乎每家平台的…

作者头像 李华
网站建设 2026/4/16 3:49:18

女性开发者沙龙:巾帼力量推动语音技术进步

女性开发者沙龙&#xff1a;巾帼力量推动语音技术进步 在智能音箱自动播报天气、有声书流畅朗读小说、虚拟客服温柔回应咨询的今天&#xff0c;你是否曾想过——这些“声音”背后的技术门槛正在被一群女性开发者悄然降低&#xff1f; 语音合成&#xff08;Text-to-Speech, TTS&…

作者头像 李华
网站建设 2026/4/15 13:20:26

【Python多模态数据存储终极指南】:掌握高效存储与管理的5大核心技术

第一章&#xff1a;Python多模态数据存储的核心挑战与演进在人工智能与大数据快速发展的背景下&#xff0c;Python作为主流编程语言广泛应用于多模态数据处理。然而&#xff0c;如何高效存储和管理图像、文本、音频、视频等多种类型的数据&#xff0c;成为系统设计中的关键难题…

作者头像 李华
网站建设 2026/4/15 9:39:13

表单上传总失败?,深度剖析PyWebIO文件上传常见坑及避坑方案

第一章&#xff1a;表单上传失败的常见现象与背景在现代Web应用开发中&#xff0c;文件上传是用户与系统交互的重要功能之一&#xff0c;广泛应用于头像设置、文档提交和媒体资源管理等场景。然而&#xff0c;表单上传失败是开发者频繁遇到的问题&#xff0c;其表现形式多样&am…

作者头像 李华
网站建设 2026/4/15 11:19:40

X射线检测技术:多领域关键应用与性能发展趋势解析

X射线检测技术&#xff0c;是一种成熟的无损检测的手段&#xff0c;它在工业领域发挥着不可替代的作用&#xff0c;它在食品领域发挥着不可替代的作用&#xff0c;它在安检等多个关键领域发挥着不可替代的作用&#xff0c;其核心原理在于利用X射线穿透物质&#xff0c;由于物质…

作者头像 李华
网站建设 2026/4/13 9:04:19

AI排名优化技术解析:原理、服务商与应用场景

于当下数字化营销的环境里头&#xff0c;AI排名优化已然成了企业用以提升在线可见度以及获取精准流量的关键技术办法&#xff0c;此技术主要借由算法去剖析搜索引擎跟内容平台的排名机制&#xff0c;联合语义理解呀、用户意图识别还有实时数据反馈&#xff0c;针对特定关键词或…

作者头像 李华