多环境_部署项目

news2024/12/26 11:58:40

多环境:

指同一套项目代码在不同的阶段需要根据实际情况来调整配置并且部署到不同的机器上。

为什么需要?

1. 每个环境互不影响
2. 区分不同的阶段:开发 / 测试 / 生产
3. 对项目进行优化:
   1. 本地日志级别
   2. 精简依赖,节省项目体积
   3. 项目的环境 / 参数可以调整,比如 JVM 参数

针对不同环境做不同的事情。

多环境分类:

1. 本地环境(自己的电脑)localhost
2. 开发环境(远程开发)大家连同一台机器,为了大家开发方便
3. 测试环境(测试)开发 / 测试 / 产品,单元测试 / 性能测试 / 功能测试 / 系统集成测试,独立的数据库、独立的服务器
4. 预发布环境(体验服):和正式环境一致,正式数据库,更严谨,查出更多问题
5. 正式环境(线上,公开对外访问的项目):尽量不要改动,保证上线前的代码是 “完美” 运行
6. 沙箱环境(实验环境):为了做实验

前端多环境实战

请求地址

  开发环境:localhost:8000

  线上环境:user-backend.code-nav.cn

startFront(env) {
      if(env === 'prod') {
          // 不输出注释 
          // 项目优化
          // 修改请求地址
      } else {
          // 保持本地开发逻辑
      }
  }


  用了 umi 框架,build 时会自动传入 NODE_ENV == production 参数,start NODE_ENV 参数为 development

打包之后会自动生成静态的网页文件

启动方式

  开发环境:npm run start(本地启动,监听端口、自动更新)
  线上环境:npm run build(项目构建打包),可以使用 serve 工具启动(npm i -g serve)

项目的配置

  不同的项目(框架)都有不同的配置文件,umi 的配置文件是 config,可以在配置文件后添加对应的环境名称后缀来区分开发环境和生产环境。参考文档:https://umijs.org/zh-CN/docs/deployment

  开发环境:config.dev.ts
  生产环境:config.prod.ts
  公共配置:config.ts 不带后缀

后端项目区分环境:

在配置文件后加-prod 

 
可以在启动项目时传入环境变量:

java -jar .\user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

提示:在连接线上数据库时可能报错:

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

The following required algorithms might be disabled: SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, include jdk.disabled.namedCurves. Edit the list of disabled algorithms to include required algorithms. You can try to enable TLSv1 or TLSv1.1 first.

JDBC driver may have disabled TLS > 1.1.

解决办法:

在URL中添加在数据库后面添加?createDatabaseIfNotExist=true&useSSL=false

如:jdbc:mysql://192.168.2.2:3306/test?createDatabaseIfNotExist=true&useSSL=false

打包好后运行线上jar包

cd .\target\
java -jar .\user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

学到的朋友求点个赞吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/882379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虫情测报灯——监测预警分析

KH-CQPest虫情测报灯是专为田间虫害统计、农林虫情测报而研制的设备&#xff0c;利用光、电、数控等技术实现自动诱虫、杀虫、虫体分散、拍照、运输、收集、排水等系统作业等功能&#xff0c;当有害虫出现时&#xff0c;会受到诱集光源的影响&#xff0c;自动飞扑撞向撞击屏&am…

网络基础——网络协议是什么?

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 一、理解网络协议 1、网络协议是什么&#xff1f; 2、网络协议的三要素 二、常见的网络协议 1、TCP/IP协议 2、HTTP协议 3、FTP协…

AD8302 - 信号幅度相位检测

AD8302 - 信号幅度相位检测 AD8302模块AD8302简介芯片特点模块引脚AD8302工作原理内部框图工作原理 实验接线鉴相鉴幅 实验总结 AD8302模块 AD8302简介 AD8302是ADI公司推出的一个款用于测量RF/IF信号幅度和相位的单片集成电路&#xff0c;它能同时测量从低频到 2.7GHz 频率范…

uniapp的uview-plus组件库的导入

uniapp的vue3中使用uview-plus组件库。在插件市场中找到该组件并点击如下所示绿色按钮&#xff0c;弹出弹窗选择要导入的项目后&#xff0c;就会在uni_modules文件中生成如下文件内容 关于插件的下载区别&#xff0c;可参考&#xff1a;https://uniapp.dcloud.net.cn/compone…

互联网发展历程:跨越远方,路由器的启示

互联网的蓬勃发展&#xff0c;一直在追求更广阔的连接&#xff0c;更遥远的距离。然而&#xff0c;在早期的网络中&#xff0c;人们面临着连接距离有限的问题。一项重要的技术应运而生&#xff0c;那就是“路由器”。 连接受限的问题&#xff1a;距离有限 早期的网络受限于直接…

计网第三章(数据链路层)(一)

一.数据链路层概述 数据链路层还没有牵扯到多个网络互连的问题&#xff0c;第三章主要研究的是在同一个局域网中&#xff0c;分组怎样从一个主机传送到另一个主机&#xff0c;中间并没有路由器的转发。 1.信道分类 点对点信道&#xff1a; 即一对一的通信方式。 广播信道&…

西瓜书南瓜书第一、二章

&#xff08;存在疑问的地方使用红色字体进行了标注&#xff09; 第一章 什么是机器学习 人工智能&#xff1a;研究如何让机器变得像人一样拥有智能的学科 机器学习&#xff1a;让计算机像人一样能从数据中学习出规律的一类算法 深度学习&#xff1a;神经网络类的机器学习算…

科大讯飞星火模型申请与chatgpt 3.5模型以及new bing的对比

科大讯飞星火模型 申请科大讯飞星火认知大模型账号科大讯飞星火认知大模型使用1.界面介绍2. 在编程能力上与chatgpt 3.5对比科大讯飞星火模型chatgpt 3.5模型 3. 在图片生成能力上与new bing对比 总结 申请科大讯飞星火认知大模型账号 注册网址&#xff1a; 科大讯飞星火认知大…

Python基础知识:列表推导式详解

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 我们经常需要这样处理一个列表&#xff1a; 把一个列表里面的每个元素&#xff0c; 经过相同的处理 &#xff0c;生成另一个列表。 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程&#xff0c;尽在下方…

如何给 Keycloak 用户加上“部门”、“电话”等自定义属性

Keycloak 是一款开源的用户认证和授权软件。在默认安装情况下&#xff0c;它只给新创建的用户提供了 email 属性&#xff0c;但是在许多应用场景中&#xff0c;客户都会要求给新创建的用户增加诸如“部门”、“电话”等自定义属性。 本文会介绍如何给 keycloak 中新创建的用户…

Android上架商城 隐私政策需要网页 没有怎么办

Android开发的项目上架商城的时候会需要你填写url&#xff0c;但其实并不需要真的去发布一个网站 使用腾讯文档新建文档 填写隐私政策 点击生成网页 再将网址填写即可 下面我找到的一个隐私政策文档供大家参考 将XXXX应用一键替换为自己的应用 将XXXXXX公司一键替换为公司 …

【Linux】多线程1——线程概念与线程控制

文章目录 1. 线程概念什么是线程Linux中的线程线程的优点线程的缺点线程的独立资源和共享资源 2. 线程控制Linux的pthread库用户级线程 &#x1f4dd; 个人主页 &#xff1a;超人不会飞)&#x1f4d1; 本文收录专栏&#xff1a;《Linux》&#x1f4ad; 如果本文对您有帮助&…

记一次触发器拦截更新操作

1、背景 业务上有一张表记录仓库和经纬度的&#xff0c;正常情况不怎么做变更&#xff1b;业务反馈经常出现经纬度被更新的情况&#xff0c;操作人都是接口或者admin&#xff0c;人工运维后又会被接口/admin覆盖更新掉 2、过程 遇到这种情况&#xff0c;我的第一反应是定位代…

【Kubernetes】Kubernetes的Pod控制器

Pod控制器 一、Pod 控制器的概念1. Pod 控制器及其功用2. Pod 控制器有多种类型2.1 ReplicaSet2.2 Deployment2.3 DaemonSet2.4 StatefulSet2.5 Job2.6 Cronjob 3. Pod 与控制器之间的关系 二、Pod 控制器的使用1. Deployment2. SatefulSet2.1 为什么要有headless&#xff1f;2…

.Net Core 动态加载和卸载程序集

从 .Net Core 3.0开始支持程序集的加载和卸载&#xff0c;在 .Net FrameWork中使用独立的应用程序域来实现同样的功能&#xff0c;.Net Core 不支持创建多个应用程序域&#xff0c;所以无法使用多个应用程序域来实现程序集动态加载和卸载。 AssemblyLoadContext 程序集加载上下…

Antd的日期选择器中文化配置

当你使用antd的日期选择器后&#xff0c;你会发现日期什么都是英文的&#xff1a;即便你已经在项目中配置了中文化&#xff1a; 我确实已经配置了中文化&#xff1a; 但是为啥没生效&#xff1f;官网回答&#xff1a;FAQ - Ant Design dayjs中文网&#xff1a; 安装 | Day…

宝塔部署阿里云盘webdav

安装Docker 我的系统是CentOS8&#xff0c;如果直接安装会出错&#xff0c;可以看这篇文章&#xff1a;Failed to download metadata for repo ‘appstream‘ docker 国内镜像&#xff1a; http://hub-mirror.c.163.com/下载镜像 宝塔安装docker管理器&#xff0c;然后搜索…

深入了解IP地址查询的几种方式

随着互联网的发展&#xff0c;IP地址已经成为网络世界中不可或缺的部分。而准确地了解IP地址的来源和所属地区&#xff0c;对于网络安全和数据分析等方面具有重要意义。本文将介绍几种常见的IP地址查询方式&#xff0c;帮助读者深入了解IP地址的查询方法。 WHOIS查询 WHOIS查询…

VMware 安装 Centos7

VMware 安装 Centos7 1、首先&#xff0c;下载我们需要安装的 Centos7 镜像 链接&#xff1a;https://pan.baidu.com/s/1-O5nc4OwQye_yvzTCHeyvg 提取码&#xff1a;88882、打开VMware&#xff0c;点击新建虚拟机 3、选择典型&#xff0c;点击下一步 4、选择Centos7 iso文件镜…

实验二十九、正弦波变锯齿波电路

一、题目 将峰值为 1 V 1\,\textrm V 1V、频率为 100 Hz 100\,\textrm{Hz} 100Hz 的正弦波输入电压&#xff0c;变换为峰值为 5 V 5\,\textrm V 5V、频率为 200 Hz 200\,\textrm {Hz} 200Hz 的锯齿波电压。利用 Multisim 对所设计的电路进行仿真、修改&#xff0c;直至满足…