Linux 部署 Spring Boot 项目, Web项目(2025版)
Linux 部署 Spring Boot 项目,Web项目(2025版)
- 一、简洁版
- 1.1 Linux 环境配置
- 1.2 将Spring Boot 项目部署到 Linux 中
- 二、详细版
- 2.1 Linux 环境配置
- 2.2 Spring Boot 项目搭建
- 2.3 mysql 配置
- 2.4 测试项目
- 2.5 将Spring Boot 项目部署到 Linux 中
- 三、Web 项目部署
主要介绍:在 Linux 系统中配置运行Java 程序所需要的配置环境,如JDK,MySQL,Tomcat 等,
之后,将你的 Spring Boot 项目使用 Maven 工具打包成 jar包,丢到 Linux 系统中,java -jar demo.jar
运行即可。
本文项目版本使用:Windows 11,jdk-21,IntelliJ IDEA 2024.3.4.1,mysql-8.0, Navicat Premium 17
本文使用的项目源码,见文章最上方。
一、简洁版
1.1 Linux 环境配置
-
本文 JDK 使用 jdk 21 版本
jdk-21 详细安装教程 -
MySQL使用MySQL8.0.40 版本
mysql8.0 详细安装教程+防火墙配置 -
如果你要部署 web 应用,可以使用 tomcat,部署Spring Boot 请忽略此第3点
tomcat 详细安装教程+开放8080端口
1.2 将Spring Boot 项目部署到 Linux 中
在 IntelliJ IDEA 中,使用 Maven 工具,将 Spring Boot 项目打成 jar 包,在 Linux 系统中,运行以下指令,启动项目即可。其中:demo.jar 是你打包好的 jar 包。
注意:项目在本地运行正常,在linux 系统中无法运行,可能是你环境配置的问题, 如
开启防火墙
,开放端口
等。
java -jar demo.jar
二、详细版
2.1 Linux 环境配置
-
本文 JDK 使用 jdk 21 版本
jdk-21 详细安装教程(Linux系统) -
MySQL使用MySQL8.0.40 版本
mysql8.0 详细安装教程+防火墙配置(Linux系统) -
如果你要部署 web 应用,可以使用 tomcat,部署Spring Boot 请忽略此第3点
tomcat 详细安装教程+开放8080端口(Linux系统)
2.2 Spring Boot 项目搭建
-
创建 Spring Boot 项目
-
选择一些构建工具
-
创建以下目录结构和文件
-
User.java
package com.example.demo.entity;import jakarta.persistence.Entity; import jakarta.persistence.Id; import lombok.Data;import java.util.Date;@Data @Entity public class User {@Idprivate Integer id;private String name;private Date birthday; }
-
UserRepository.java
package com.example.demo.repository;import com.example.demo.entity.User; import org.springframework.data.jpa.repository.JpaRepository;public interface UserRepository extends JpaRepository<User, Integer> { }
-
UserController.java
package com.example.demo.controller;import com.example.demo.entity.User; import com.example.demo.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController @RequestMapping("/user") public class UserController {@Autowiredprivate UserRepository userRepository;@GetMapping("/index")public List<User> findAll() {return userRepository.findAll();} }
-
application.yml
server:port: 8080 spring:datasource:url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driverjpa:show-sql: trueproperties:hibernate:format_sql: true
-
配置文件说明
2.3 mysql 配置
- tset.sql
create database test character set utf8 collate utf8_general_ci; use test; create table user(id int primary key auto_increment,name varchar(20),birthday datetime );insert into user(name, birthday) values ('小明', '2000-01-01'); insert into user(name, birthday) values ('小华', '2001-01-01');
- 图文讲解
2.4 测试项目
在地址栏输入以下内容,即可通过项目访问数据库内容。
localhost:8080/user/index
2.5 将Spring Boot 项目部署到 Linux 中
我们在本地已经测试通过了,现在让我们进入虚拟机(或者远程服务器)将我们的项目部署到 Linux 系统中。
- 在 Linux 系统中需要配置 jdk 21 环境,和mysql 8.0 环境,如果你已经都配置好了,请或略此段,如果你还未配置,请点击查看详细配置:
- jdk-21 详细安装教程
- mysql8.0 详细安装教程+防火墙配置
- 将刚刚我们构建的项目打成 jar 包:
- 将项目拖拽到远程服务器或者虚拟机中
- 在 Linux 中运行项目
- 部署成功
三、Web 项目部署
如果你需要在 Linux 中部署 Web 项目,你还需要在配置一个 tomcat 容器, 运行时,只需要将项目打包,打成war 包,将 war 包丢到 tomcat 的
webapps
目录下即可。
注意:项目在本地运行正常,在linux 系统中无法运行,可能是你环境配置的问题, 如开启防火墙
,开放端口
等。
- jdk-21 详细安装教程(Linux系统)
- mysql8.0 详细安装教程+防火墙配置(Linux系统)
- tomcat 详细安装教程+开放8080端口(Linux系统)
END Spring Boot 项目,Web项目,部署完成
相关文章:
Linux 部署 Spring Boot 项目, Web项目(2025版)
Linux 部署 Spring Boot 项目,Web项目(2025版) 一、简洁版1.1 Linux 环境配置1.2 将Spring Boot 项目部署到 Linux 中 二、详细版2.1 Linux 环境配置2.2 Spring Boot 项目搭建2.3 mysql 配置2.4 测试项目2.5 将Spring Boot 项目部署到 Linux …...
泛目录技术:智能缓存提升网站速度与稳定性
泛目录技术:智能缓存提升网站速度与稳定性 在现代网站运营中,速度和稳定性是用户体验和SEO优化的关键因素。2025奥顺互联推出的泛目录技术,通过智能缓存机制,为网站提供了卓越的性能提升和稳定性保障。本文将深入探讨该技术的特点…...
CNN SSP, ASPP, PPM 分割任务经典尺度聚合模块
SSP:Spatial Pyramid Pooling 让任意大小图像最终输出的特征维度始终固定,便于接全链接层。 4x4, 2x2,1x1区域的maxpooling,让任意大小图像最终输出最终特征维度始终为 (1641)*256 ASSP:Atrous Spatial Pyramid Pooling 不进行…...
Nping- Nmap中的一个工具-用于生成网络数据包并分析响应
Nping 工具介绍 Nping 是 Nmap 项目中的一个网络工具,用于生成网络数据包并分析响应。它可以用于网络探测、性能测试、防火墙测试、ARP 欺骗检测等多种场景。Nping 支持多种协议(如 TCP、UDP、ICMP、ARP),并允许用户自定义数据包…...
海马下载 1.0.2 | 纯净无广告,极简设计,不限速下载工具
海马下载是一款轻量级下载工具,仅保留核心链接下载功能,体积小巧仅21MB。实测无广告弹窗且不限速,适合追求简洁体验的用户。操作界面直观易用,可快速添加任务并查看下载进度。 大小:21M 下载地址: 百度网…...
【蓝桥杯—单片机】第十五届省赛真题代码题解析 | 思路整理
第十五届省赛真题代码题解析 前言赛题代码思路笔记竞赛板配置建立模板明确基本要求显示功能部分频率界面正常显示高位熄灭 参数界面基础写法:两个界面分开来写优化写法:两个界面合一起写 时间界面回显界面校准校准过程校准错误显示 DAC输出部分按键功能部…...
maven之自定义插件
写在前面 在使用maven肯定是离不开插件的,比如执行mvn clean或者时mvn compile其实运行的就是绑定的默认插件。虽然我们一般不需要来自定义插件,但是为了使用的过程中更加的清晰,来尝试自定义插件还是很有必要的,所以本文就一起来…...
Unity单例模式(c#泛型基类)
Unity单例模式 1 单例模式2 继承mono脚本单例模式基类3 SingletonAutoMono脚本 1 单例模式 单例模式基类模块 范型加约束,支持new来构造 //单例模式基类模块 //范型加约束,支持new来构造 public class BaseManager<T> where T :new() {private static T instance;public …...
java 中桥方法(Bridge Method)解决泛型和多态(即:类型兼容)而存在的
在 Java 中,**桥方法(Bridge Method)**是编译器自动生成的一种方法,主要用于解决泛型类型擦除和继承中的类型兼容性问题。以下是关于桥方法的几点关键信息: 1. 桥方法的作用 类型擦除兼容性:Java 的泛型在…...
Centos7阿里云yum源
#Step1:下载repository 没有wget命令 就用curl wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #Step2:安装epel基础组件源 没有wget命…...
leetcode 102. 二叉树的层序遍历
方法一: 用两个数组进行迭代遍历 class Solution {public List<List<Integer>> levelOrder(TreeNode root) {if(root null) {return new ArrayList<List<Integer>>();}List<TreeNode> cur new ArrayList<TreeNode>();cur.a…...
Trae插件革命:用VSPlugin Helper实现VSCode市场插件全自动安装
之前有读者留言说trae都没有c的插件用,确实是这样,trae的插件源用的是open vsx,而c/c插件是vscode官方插件市场的,如果想直接在trae中安装c/c插件是不行的,只能先从vscode官方插件市场把vsix后缀文件先下载下来&#x…...
SpringCloud带你走进微服务的世界
认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 单体架构 单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部…...
多线程(超详细) (ε≡٩(๑>₃<)۶ 一心向学)
多线程目录 一、认识线程 1、概念: 1) 线程是什么 2) 线程为什么存在 3) 进程与线程的区别 二、创建线程 1、方法1:继承Thread类 2、方法2:实现 Runnable 接口 3、方法3:匿名内部类创建 Thread 子类对象 4、方法4&#…...
LabVIEW旋转设备状态在线监测系统
为了提高大型旋转设备如电机和水泵的监控效率和故障诊断能力,用LabVIEW软件开发了一套实时监测与故障诊断系统。该系统集成了趋势分析、振动数据处理等多项功能,可实时分析电机电流、压力、温度及振动数据,以早期识别和预报故障。 项目背…...
RSS和TSS在网络流量处理中的优化作用
摘要 本文深入探讨了RSS(Receive Side Scaling)和TSS(Transmit Side Scaling)这两种网络流量处理技术的实现方法及其在网络性能优化中的重要作用。通过对硬件和软件实现方式的详细分析,阐述了它们如何在多队列网卡、多核处理器系统以及虚拟化环境中提升网络处理性能和吞吐…...
C++ 中的 RTTI(Run-Time Type Information,运行时类型识别)
我来为你详细讲解 C 中的 RTTI(Run-Time Type Information,运行时类型识别),并结合你提供的参考内容进行分析和说明。 什么是 RTTI? RTTI 是 C 提供的一种机制,允许程序在运行时识别对象的类型信息。它主要…...
Netty基础—4.NIO的使用简介二
大纲 1.Buffer缓冲区 2.Channel通道 3.BIO编程 4.伪异步IO编程 5.改造程序以支持长连接 6.NIO三大核心组件 7.NIO服务端的创建流程 8.NIO客户端的创建流程 9.NIO优点总结 10.NIO问题总结 4.伪异步IO编程 (1)BIO的主要问题 (2)BIO编程模型的改进 (3)伪异步IO编程 …...
WPS 接入 DeepSeek-R1 深度实践:打造全能AI办公助手
一、智能化办公革命的技术底座 1.1 全球办公自动化发展现状 根据Gartner 2024年数字化转型报告显示,全球83%的企业已启动文档处理智能化改造,其中中国企业的AI办公渗透率以年均37%的增速领跑全球。WPS Office凭借其月活设备数突破5.6亿的生态优势&…...
MySQL与Redis的缓存一致性问题
MySQL与Redis的缓存一致性问题 前言 在学习中,为了提高数据的读取效率,我们往往会使用Redis来作为MySQL数据的缓存,那么,自然就产生了二者间数据的一致性问题。 想要对MySQL和Redis进行数据处理,自然会产生以下问题…...
【前端文件下载实现:多种表格导出方案的技术解析】
前端文件下载实现:多种表格导出方案的技术解析 背景介绍 在企业级应用中,数据导出是一个常见需求,特别是表格数据的导出。在我们的管理系统中,不仅需要支持用户数据的Excel导出,还需要处理多种格式的表格文件下载&am…...
933. 最近的请求次数
最近的请求次数 题目描述尝试做法推荐做法 题目描述 写一个 RecentCounter 类来计算特定时间范围内最近的请求。 请你实现 RecentCounter 类: RecentCounter() 初始化计数器,请求数为 0 。 int ping(int t) 在时间 t 添加一个新请求,其中 …...
[C++Qt] 槽函数收不到信号问题(信号的注册)
📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现…...
吴恩达机器学习笔记复盘(三)Jupyter NoteBook
Jupyter NoteBook Jupyter是一个开源的交互式计算环境: 特点 交互式编程:支持以单元格为单位编写和运行代码,用户可以实时看到代码的执行结果,便于逐步调试和理解代码逻辑。多语言支持:不仅支持Python,还…...
面向对象Demo02
方法的调用的回顾 package oop; public class Demo02 {//静态public static void main(String[] args) {//student student new student();student.speak();//非静态 //student student new student();} } package oop; public class student {public static void sp…...
Quitzilla 学习版(安卓):戒掉坏习惯的高效助手
Quitzilla 是一款源自国外的日程管理工具,专为帮助用户戒除不良习惯而设计。它通过强大的习惯追踪功能和丰富的激励机制,让用户能够清晰地看到自己的进步,并逐步克服成瘾行为。这款软件的前身是一款戒烟应用,但经过改进后…...
AWB-illuminant_weight_vector
1.概念 光源权重向量 AWB 处理通过求取R/G-B/G 空间中灰色统计数据位置的平均值来估计光源, 此估计基于灰度世界假设. 因此, 输入统计数据中真实的灰色统计数据很重要. 通用环境下,灰色统计数据的平均值会遭到灰色区中的非灰色统计数据污染. 因此,估计结果的精确性依赖与选择灰…...
微信小程序面试内容整理-数据绑定
在微信小程序中,数据绑定是将 JavaScript 中的数据与 WXML 中的视图进行关联和同步的过程。它使得视图可以根据数据的变化自动更新,极大地简化了前端开发的复杂度。 数据绑定有两种主要类型: 1. 单向数据绑定:数据从 Java器更新到视图。...
蓝桥每日打卡--背包问题
#蓝桥#JAVA#背包问题 题目描述 有一个背包,它的容量为 W 4。有 3 个物品,它们的重量分别为 [2, 1, 3],价值分别为 [4, 2, 3]。问在不超过背包容量的情况下,能装入背包的物品的最大价值是多少? 解题思路 动态规划的…...
基于图像比对的跨平台UI一致性校验工具开发全流程指南——Android/iOS/Web三端自动化测试实战
一、需求背景与方案概述 1.1 为什么需要跨平台UI校验? 在移动互联网时代,同一产品需覆盖Android、iOS和Web三端。由于不同平台的开发框架(如Android的Material Design与iOS的Cupertino风格)及渲染引擎差异,UI界面易出…...
3D点云目标检测——KITTI数据集读取与处理
一、 数据基本情况 KITTI数据集是由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创建的一个大规模自动驾驶场景下的计算机视觉算法评测数据集。以下是关于它的详细介绍: 数据集背景:为评估自动驾驶中计算机视觉算法的性能而设计。自动驾驶汽车需在…...
【鸿蒙开发】Hi3861学习笔记- 外部中断
00. 目录 文章目录 00. 目录01. 概述02. EXTI相关API03. 硬件设计04. 软件设计05. 实验现象06. 附录 01. 概述 我们在做按键控制实验时,虽然能实现 IO 口输入功能,但代码是一直在检测 IO 输入口的变化,因此效率不高,特别是在一些…...
技术与情感交织的一生 (一)
目录 一条朋友圈 静默 至暗时刻 选择 成人高考 歇一下 一条朋友圈 大年初一是我合作伙伴的生日,我称呼他为老高,他发的朋友圈写到:“50岁了,留下的皆是珍贵回忆。” ,看到留言的瞬间,只有一个感觉&a…...
30天学习Java第六天——Object类
Object类 java.lang.Object时所有类的超类。Java中所有类都实现了这个类中的方法。 toString方法 将Java对象转换成字符串的表示形式。 public String toString() {return getClass().getName() "" Integer.toHexString(hashCode()); }默认实现是:完…...
基于WebRTC与P2P技术,嵌入式视频通话EasyRTC实现智能硬件音视频交互,适配Linux、ARM、RTOS、LiteOS
EasyRTC不仅仅是一个连接工具,更是一个经过深度优化的通信桥梁。它在嵌入式设备上进行了特殊优化,通过轻量级SDK设计、内存和存储优化以及硬件加速支持,解决了传统WebRTC在嵌入式设备上的适配难题,显著节省了嵌入式设备的资源。 1…...
向量库集成指南
文章目录 向量库集成指南Chroma集成Pinecone集成MiLvus集成向量库集成指南 向量库是一种索引和存储向量嵌入以实现高效管理和快速检索的数据库。与单独的向量索引不同,像Pinecone这样的向量数据库提供了额外的功能,例如,索引管理、数据管理、元数据存储和过滤,以及水平扩展…...
深度研究deep-research优秀开源项目
原文链接:https://i68.ltd/notes/posts/20250305-deep-research2/ 港大开源AI科研神器AI-Researcher 项目仓库:GitHub - HKUDS/AI-Researcher: "AI-Researcher: Fully-Automated Scientific Discovery with LLM Agents" & "Open-Sourced Alternative to G…...
芯谷D8563TS:低功耗CMOS实时时钟/日历电路的优选方案
在电子设备中,实时时钟(RTC)电路对于提供准确的时间和日历信息至关重要。芯谷D8563TS作为一款低功耗的CMOS实时时钟/日历电路,以其丰富的功能、高精度和灵活的可编程性,成为众多嵌入式系统和电池供电设备中的理想选择。…...
FPGA中级项目1——IP核(ROM 与 RAM)
FPGA中级项目1——IP核(ROM 与 RAM) IP核简介 在 FPGA(现场可编程门阵列)设计中,IP 核(Intellectual Property Core,知识产权核)是预先设计好的、可重用的电路模块,用于实…...
Redis的持久化-AOF
1.AOF AOF(Append Only File)持久化:以独立日志的方式记录每次写命令,重启时在重新执行AOF文件中的命令达到恢复数据的目的。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。理解掌握好A…...
jmeter-sample
jmeter-sample http request:接口测试常用请求参数ParametersBody DataFiles Upload jdbc request配置JDBC Connection Configuration创建JDBC Requst请求 http request:接口测试常用 请求参数 Parameters 常见于get请求,与拼在接口后面是一样的效果:如…...
2025-03-15 学习记录--C/C++-PTA 练习3-4 统计字符
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 练习3-4 统计字符 本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、…...
编程自学指南:java程序设计开发,网络编程基础,TCP编程,UDP编程,HTTP客户端开发
编程自学指南:java程序设计开发,网络编程基础 学习目标: 理解网络协议(TCP/IP、UDP)的核心概念 掌握Socket编程实现客户端与服务端通信 能够通过多线程处理并发网络请求 开发简单的网络应用(如聊天程序…...
C++ primer plus 类和对象
目录 前言 一 接口的设计 二 方法的设计和使用 三 构造函数 四 析构函数 五 析构函数和构造函数小结 总结 前言 前面已经描述了很多有关于类和对象的知识了,所以我们直接开始上手操作 一 接口的设计 首先我们要知道什么是接口 接口是一个…...
k8s 修改节点驱逐阈值
编辑 /var/lib/kubelet/config.yaml 文件 kind: KubeletConfiguration evictionHard:nodefs.available: "5%" # 降低磁盘压力触发阈值imagefs.available: "10%" # 调整容器镜像存储触发阈值nodefs.inodesFree: "3%...
HiPixel开源AI驱动的图像超分辨率的原生macOS 应用程序,使用 SwiftUI 构建并利用 Upscayl 强大的 AI 模型
一、软件介绍 文末提供程序和源码下载 HiPixel是一个开源程序基于SwiftUI构建的macOS原生应用程序,用于AI驱动的图像超分辨率,并利用Upscayl的强大AI模型。 二、软件特征 具有 SwiftUI 界面的原生 macOS 应用程序使用 AI 模型进行高质量图像放大通过 G…...
使用 .NET Core 实现 RabbitMQ 消息队列的详细教程
RabbitMQ 是一个流行的消息队列中间件,它允许应用程序通过异步消息的方式进行通信。RabbitMQ 支持 AMQP 协议,可以通过多种方式与应用程序交互。在本教程中,我们将深入探讨如何在 .NET Core 环境中使用 RabbitMQ 来实现消息队列。我们将学习如…...
深度学习——同一台电脑使用ssh配置多个github账号
如果一台电脑只有一个github账号,那么进行默认的ssh配置,通过git拉取和提交代码即可,但在实际的工作中,有时候需要在一台电脑登录多个github账号,将不同的项目代码提交到不同的github账号,这个时候如果仅仅…...
windows常用cmd命令
Windows 命令提示符(CMD)提供了许多实用的命令,用于管理文件、目录、网络、系统配置等。以下是一些常用的 CMD 命令及其用途: 文件和目录操作 dir: 列出当前目录下的文件和子目录。 dircd: 切换当前目录。 cd C:\Users cd .. # 返…...
C语言中的流程控制语句
一.流程控制语句的分类: 1.顺序结构 概念:从上往下依次执行,也是程序默认的执行顺序 2.分支结构 概念:程序在执行的过程中出现了岔路(我们只能选择一条支线进行执行) (1).if语句…...