SpringBoot项目部署及多环境
1、多环境
2、项目部署上线
- 原始前端 / 后端项目
- 宝塔Linux
- 容器
- 容器平台
3、前后端联调
4、项目扩展和规划
多环境
程序员鱼皮-参考文章
本地开发:localhost(127.0.0.1)
多环境:指同一套项目代码在把不同的阶段需要根据实际情况根来调整配置并且配置到不同的机器上
为什么需要?
- 每个环境互不影响
- 为了区分不同的阶段:开发 / 测试 / 生产
- 对项目进行优化
- 本地日志级别
- 精简依赖,节省项目体积
- 项目的环境 / 参数可以调整,比如JVM参数
总结一下,多环境是为了针对不同环境做不同的事
多环境分类:
- 本地环境(我们自己的电脑): localhost(127.0.0.1)
- 开发环境(远程开发):开发人员连接同一台机器
- 测试环境(测试):开发 / 测试 / 产品,性能测试 / 功能测试 / 系统集成测试,独立的数据库、服务器
- 预发布环境(体验服):基本和正式环境一致,使用正式数据库,更严谨,检查出更多问题
- 正式环境(线上,对外公开的项目):尽量不要改动,保证上线的代码是“完美”的
- 沙箱环境(实验环境):为了做实验
前端多环境实战
后端多环境实战
SpringBoot项目,通过 application.yml 添加不同的后缀,区分配置文件

可以在启动项目时传入环境变量来选择配置文件
主要是改:
- 依赖的环境地址
- 数据库地址
- 缓存地址
- 消息队列地址
- 项目端口号
- 服务器配置
java -jar ./brrbaii_backend_init-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
可以看到启动时选择了application-prod.yaml文件

Linux宝塔部署
MYSQL安装及对外开发
以腾讯云为例,在防火墙内开放3306端口

还有在宝塔面板的安全组里也同步开放一下
接着登录进mysql
mysql -u root -p '你的密码'
选择数据库
use mysql;
更新域属性,'%'表示允许外部访问:
update user set host='%' where user ='root';
执行以上语句之后再执行:
FLUSH PRIVILEGES;
再执行授权语句:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
最后刷新一下
FLUSH PRIVILEGES;
接着外部就可以访问到了
Tomcat安装
直接搜安装即可

新建站点

新建文件,把我们的JAR包丢进去

添加JAVA项目
可以看到启动成功了

Docker部署
docker是容器,可以将项目的环境(比如java、nginx)和项目的代码一起打包成镜像,所有朋友都能下载镜像,更容易分发和移植
可以看到启动成功了
[外链图片转存中…(img-Y1RjwKXZ-1703855103783)]
Docker部署
docker是容器,可以将项目的环境(比如java、nginx)和项目的代码一起打包成镜像,所有朋友都能下载镜像,更容易分发和移植
再启动项目时,不需要敲一大堆命令,而是直接下载镜像、启动镜像,docker可以理解为软件安装包
相关文章:
SpringBoot项目部署及多环境
1、多环境 2、项目部署上线 原始前端 / 后端项目宝塔Linux容器容器平台 3、前后端联调 4、项目扩展和规划 多环境 程序员鱼皮-参考文章 本地开发:localhost(127.0.0.1) 多环境:指同一套项目代码在把不同的阶段需要根据实际…...
WebGL以及wasm的介绍以及简单应用
简介 下面主要介绍了WebGL和wasm,是除了html,css,js以外Web标准所支持的另外两个大件 前者实现复杂的图形处理,后者提供高效的代码迁移以及代码执行效率 WebGL 简介 首先,浏览器里的游戏是怎么做到这种交互又显示不同的画面的? 试想用我们的前端三件套实现一下.好像可以…...
JS和TS的基础语法学习以及babel的基本使用
简介 本文主要介绍了一下js和ts的基础语法,为前端开发zuo JavaScript 更详细的 JavaScript 学习资料:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript 简介 定位 : JavaScript 是一种动态语言,它包含类型、运算符、标准内置( bu…...
Centos安装Composer
今天分享下如何在centos系统里安装composer 一、下载composer curl -sS https://getcomposer.org/installer | php二、移动或复制composer到环境下可执行 cp composer.phar /usr/local/bin/composer三、测试看是否安装成功 composer -V四、全局安装 curl -sS https://getc…...
面试题:从 MySQL 读取 100w 数据进行处理,应该怎么做?
文章目录 背景常规查询流式查询MyBatis 流式查询接口为什么要用流式查询? 游标查询OptionsResultType注意:原因: 非流式查询和流式查询区别: 背景 大数据量操作的场景大致如下: 数据迁移数据导出批量处理数据 在实际…...
销售转行上位机编程:我的学习与职业经历分享
同学们好,我是杨工,原先是一名销售。 通过在华山编程培训中心学习,成功转行上位机编程,对此我想分享学习和职业经历。 在职业生涯的早期,我并没有考虑将技术融入到我的工作中。然而,在几次创业的失败后&a…...
分库分表之Mycat应用学习一
1 为什么要分库分表 1.1 数据库性能瓶颈的出现 对于应用来说,如果数据库性能出现问题,要么是无法获取连接,是因为在高并发的情况下连接数不够了。要么是操作数据变慢,数据库处理数据的效率除了问题。要么是存储出现问题…...
Windows下Qt使用MSVC编译出现需要转为unicode的提示
参考 Qt5中文编码问题解决办法_qt5设置编码-CSDN博客 致敬 提示:warning: C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失。 出现此问题,应该是Unix格式下代码的编码格式是UTF-8,注意不…...
【数值分析】乘幂法,matlab实现
乘幂法 一种求实矩阵 A {A} A 的按模最大的特征值,及其对应的特征向量 x i {x_i} xi 的方法,只能求一个。特别适合于大型稀疏矩阵。 一个矩阵的特征值和特征向量可以通过矩阵不断乘以一个初始向量得到。 每次乘完之后要规范化,防止上溢或…...
视频监控EasyCVR如何通过设置sei接口,实现在webrtc视频流中添加画框和文字?
安防视频监控系统基于视频综合管理平台EasyCVR视频系统,采用了开放式的网络结构,可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,具备权限管…...
智能三维数据虚拟现实电子沙盘
一、概述 易图讯科技(www.3dgis.top)以大数据、云计算、虚拟现实、物联网、AI等先进技术为支撑,支持高清卫星影像、DEM高程数据、矢量数据、无人机倾斜摄像、BIM模型、点云、城市白模、等高线、标高点等数据融合和切换,智能三维数…...
【SpringCloud】-GateWay源码解析
GateWay系列 【SpringCloud】-GateWay网关 一、背景介绍 当一个请求来到 Spring Cloud Gateway 之后,会经过一系列的处理流程,其中涉及到路由的匹配、过滤器链的执行等步骤。今天我们来说说请求经过 Gateway 的主要执行流程和原理是什么吧 二、正文 …...
华为无线ac双链路冷备和热备配置案例
所谓的冷备和热备,冷备就是不用vrrp和hsb协议同步ap和用户信息,主的断了等七十五秒后,备的capwap和ap连接上去。 双链路冷备不用vrrp和hsb 双链路热备份只用hsb同步ap和用户信息,不用vrrp,两个ac可以不用在同一个二层…...
VSCode Python开发环境配置
目录 1 插件安装2 Debug和测试配置常见问题 1 插件安装 1.1 基础编译插件,Python、Pylance 1.2 修改语言服务器类型,进入用户配置页面搜索Python: Language Server,选择Pylance(一定要修改可以提供很多语法提示) 1…...
浅谈【GPU和CPU】
GPU和显卡的区别 GPU(Graphics Processing Unit,图形处理器)通常指的就是显卡。显卡是一种安装在计算机中的扩展卡,主要用于图形和图像处理任务。 GPU作为显卡的核心组件,负责处理图形渲染、图像处理、视频解码和其他…...
啥是构造器?
当我们new一个对象时就是在引用构造器 构造器又叫做构造函数 构造函数一般分为无参构造函数与有参构造函数 假设我们创建一个pet类,这个类里面就会有一个看不见的自动生成的无参构造函数 如果pet类里没有这个隐形的无参构造,我们new一个对象时就会报错…...
Linux基础知识学习2
tree命令的使用 可以看到dir2目录下的这些文件,要想显示dir2的具体结构,可用tree命令 mv命令 它可以实现两个功能 1.将文件移动到另一个目录中 2.对某一个文件进行重命名 1.将文件移动到另一个目录中 这里将dir1中的2.txt移动到他的子目录dir3中 执行…...
Grafana二进制部署并配置prometheus数据源
1、获取grafna二进制安装包 https://grafana.com/grafana/download?pggraf&plcmtdeploy-box-1 grafana官网下载地址 [rootambari-hadoop1 ~]# cd /opt/module/grafana/ [rootambari-hadoop1 grafana]# pwd /opt/module/grafana2、在安装自己的安装目录执行 wget https:…...
时序预测 | Matlab实现SSA-CNN-BiLSTM麻雀算法优化卷积双向长短期记忆神经网络时间序列预测
时序预测 | Matlab实现SSA-CNN-BiLSTM麻雀算法优化卷积双向长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab实现SSA-CNN-BiLSTM麻雀算法优化卷积双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现SSA-CNN-BiLSTM麻雀算…...
Java中的单元测试
单元测试 单元测试概述: 单元测试是指在软件开发中对软件的最小可测试单元进行测试和验证的过程。最小可测试单元通常是指函数、方法或者类,单元测试可以保证开发人员的代码正确性,同时也方便后期维护和修改。单元测试的主要目的是检测代码的正确性&am…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...

