3 分钟学会企业开发中的多环境知识 大家好,我是鱼皮,今天给大家分享企业项目开发的重要知识 —— 多环境。 本文大纲: [鱼皮 - 多环境技术大纲] 什么是多环境? 先思考一个问题。 这便是多环境的好处。 常用环境 多环境听起来虽然挺爽的,但事实上,环境不是区分的越多越好! 一方面是搭建多环境需要额外的工作量;另一方面是项目依赖的资源越多,成本就越高,而且维护起来也更麻烦。 最后再介绍下多环境的实现方式,其实大同小异,遵循 3 个步骤:抽象配置类 + 配置文件化 + 注入环境参数,就能轻松实现~ 抽象配置类 将项目代码中需要根据环境的变化而更改的变量整理到一个或多个配置类中 ("db-test.properties"); 无论是前端还是后端,大部分的多环境实现都是这个原理 —— 搞多套配置,所以总能在项目中看到类似的配置文件: [多环境配置文件] 注入环境参数 到目前为止, 其实在企业中,多环境比这复杂的多!除了代码中要区分环境,流水线、镜像、容器也通通要区分。不过原理都是一样的~ 最近整理了我原创的 140 篇编程经验和技术文章,欢迎大家阅读,一起成长!
处理多环境 开发者常常希望根据是生产环境还是开发环境能够区分不同的定制行为,例如,如果在开发环境的程序当中输出详细的错误信息这样做对开发者来说是非常有帮助的,但是这样做的话在生产环境中会造成一些安全问题 这样能够根据不同服务器安装环境定制不同的环境依赖。 使用这个常量,除了会影响到一些基本的框架行为外(见下一章节),在开发过程中你还可以使用常量来区分当前运行的是什么环境。 在生产环境禁用错误输出是 良好的安全实践。 配置文件 另外,CodeIgnite 还可以根据不同的环境自动加载不同的配置文件,这在处理例如不同环境下有着不同的API Key的情况时相当有用。 这在 配置类 文档中的“环境”一节有着更详细的介绍。
总结:一个Project可以包含多个Target,也就是说通过不同Target我们可以生成不同的APP; 多环境配置的三种方法: 多target配置; Scheme配置; xcconfig文件配置 点击“+”,可以在这里增加新的configuration(以Dev为例); 2.切换多环境 增加configuration后,在Edit Scheme时,也会多出一种configration。 我们在run的时候,就可以手动切换configration使用不同的环境; 3.多Scheme 每次手动切换configration较为繁琐,我们还可以使用不同的Scheme直接对应不同的配置; 4 .测试Scheme多环境 1.Build Setting -> User-Defined里自定义Host_URL,再对不同的configration配置不同的值; 2.将Host_URL以变量的方式配置到 :使用inherited进行继承,在自定义配置文件中配置如下: OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" 7.测试.xcconfig多环境
<profiles> <profile> <id>dev</id> <properties> <profiles.active>dev</profiles.active> </properties> </profile> <profile> <id>beta</id> <properties>
Nacos官网地址 https://nacos.io nacos-server-1.3.2(我这里是下载的windows环境配置) 这里下载的是1.3.2的版本,其他环境启动命令请看官网 运行命令 startup.cmd -m standalone 控制台(如图示,创建了两个命名空间) 每个命名空间下创建同样的一个文件 用来测试多环境效果的内容如下示 版本 JDK 1.8 MAVEN nacos-config-spring-boot-starter</artifactId> </dependency> springboot的配置项 application.properties # 指定环境 nacos.config.group=DEFAULT_GROUP # 测试使用的配置文件 nacos.config.data-id=auto-deployed.yaml # 命名空间(必须指定,就是通过命名空间来做多环境配置的 nacos.config.group=DEFAULT_GROUP # 测试使用的配置文件 nacos.config.data-id=auto-deployed.yaml # 命名空间(必须指定,就是通过命名空间来做多环境配置的
1、多Profile文件 在写主配置文件时,文件名可以是 application-{profile}.properties/yml 默认使用application.properties的配置 # application.properties application-dev.properties server.port=8082 # application-prod.properties server.port=8083 2、使用yml配置多文档块方式
多数项目都会有开发环境、测试环境、生产环境,各个环境配置可能都会不一样,于是在构建时,会涉及到环境配置的切换。来回手工修改配置,效率低下,容易出错。 可以配置多个含有不同环境配置的Profile,在构建时指定构建环境,达到多环境下快速灵活构建的目的。 项目结构: ? jdbc.username} jdbc_password=${jdbc.password} prop下的dev.properties、test.properties、prod.properties分别对应开发、测试、生产环境的配置 -- 自定义属性env,在不同环境有不同的值 --> <env>dev</env> </properties> <activation> <! -- 默认激活dev环境的配置 --> <activeByDefault>true</activeByDefault> </activation> </profile>
客户端打包的时候如果有不同的logo,名称等信息,每次打包都需要替换一遍 ,所以这里就写了个脚本来批量替换文件和文字。
前言 在上一篇博客《【SpringBoot专题】快速体验 》中已经带领大家初步了解了SpringBoot,本篇博客将为大家介绍多环境配置、swagger等相关内容。 多环境配置分析 在实际开发中,我们可能会涉及到一些环境,比如local(本地开发环境),dev(部署到远程的开发环境),test(预发布环境),product(生产环境)。 显然,不同的环境下,对应不同的配置信息,比如db/redis/mq等,甚至不同的环境下,程序需要做不同的处理。那么springboot项目是如何支持多环境配置的呢? 实际开发中常用的多环境配置方式 ? 得到了test环境下的mongo配置 好了,到这里,多环境的配置就给大家介绍完毕了~ swagger Swagger,英文翻译过来,就是有点拽,酷的意思,名符其实!
多环境测试/部署是很多应用的需求,在Flutter中又是如何实现的? /main.dart'; void main() { // 重新给环境变量赋值 Config.env = EnvModel( env: EnumEnv.dev, name: ' static EnvModel env = EnvModel( env: EnumEnv.local, apiUrl: '', name: '本地版', ); // 环境变量配置
1、多Profile文件 我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml 例如: aplication-dev.yml aplication-prod.yml aplication-test.yml 默认使用application.properties的配置; 2、yml支持多文档块方式 server: port: 8081 spring: profiles : active: prod #指定使用哪个环境 ‐‐‐ server: port: 8083 spring: profiles: dev ‐‐‐ server: port: 8084 spring: profiles: prod #指定属于哪个环境 3、激活指定Profile 1、在配置文件中指定 spring.profiles.active=dev 2、命令行: java
SpringBoot Profile 多环境配置 多配置文件配置(properties): 格式: applicatino-{profile}.properties 默认: applicatino.properties 开发: applicatino-dev.properties 生产: applicatino-prod.properties 激活配置: spring.profiles.active=dev 多文档块配置 port: 9091 spring: profiles: dev --- server: port: 9092 spring: profiles: prod Idea激活指定环境配置 spring.profiles.active=dev Idea虚拟机参数 Idea->Run/Debug Configuration->VM options --Dspring.profiles.active=dev 命令行激活指定环境配置
1.为什么需要配置多环境配置 在实际的开发中,我们往往需要在不同的环境中使用不同的数据库、缓存配置,如果使用同一套配置文件,在不同环境部署的时候手动去修改配置文件,会使部署变得很繁琐。 使用多环境配置文件可以很方便的实现此功能。 1.创建不同环境的配置文件 在resource文件夹中添加一下配置文件: application-dev.properties //开发环境配置文件 application-rc.properties //线上环境配置文件 application-test.properties //测试环境配置文件 2. 4.测试多环境配置 我们分别在 application-dev.properties //开发环境配置文件 application-rc.properties //线上环境配置文件 application-test.properties
maven配置一下多环境,在实践生产中,正规一点的可能有开发环境、测试环境、预发布环境、生产环境等等,而这些环境的参数肯定都不一样,换环境的时候,经常需要修改参数,参数一多,维护起来很麻烦,所以SpringBoot 提供了通过profiles配置来达到多环境配置,不需要项目一上生产环境还是预发布就改一堆配置文件。 软件环境: application-dev(开发环境) application-test(测试环境) application-uat(预发布) application-prod(生产环境) 配置文件格式可以为 application-dev.yml(开发环境) application-test.yml(测试环境) application-uat.yml(预发布) application-prod.yml(生产环境 |prod)] eg: java -jar myproject.jar --spring.profiles.active = dev 拓展,配置maven 这是另外的拓展,其实也是基于前面的配置,配置多环境信息在
利用pyenv 实现python 多版本切换 下载 curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin
介绍一下前后端的多环境配置,前端使用的 Vue 框架,后端使用的是 SpringBoot 框架。 前端 Vue 这里以开发环境(dev)和生产环境(prod)为例。 这是创建出来了两个不同的环境,内容如下: .env.dev文件内容: NODE_ENV=development VUE_APP_SERVER=http://127.0.0.1:9000 ------ 后端 SpringBoot SpringBoot 的多环境配置与 Vue 类似: ? 在 application.yml 后面加上一个后缀,表示环境名称。 serverTimezone=UTC username: root password: 1234 redis: host: 10.30.100.255 port: 6379 配置好了,怎么分环境启动呢
Vue 多环境的配置 首先 我们得了解 什么是多环境变量,以及多环境变量的作用,下面用一句简短的话来描述 我们在vue项目开发中,项目在运行时会根据启动的指令来运行不同的环境,在不同的环境中,我们配置对应所需的变量来满足我们的开发需求 ,称为多环境变量。 环境一般分为开发环境,测试环境,生产环境 作用: 一个项目的完整流程,包含开发阶段、打包阶段、测试阶段,与之对应的则是不同的环境,因为每个环境的接口域名、webpack 配置都是不同的,所以在打包构建时 ,我们需要区分这些环境,这时就用到了环境变量。 配置流程: 创建文件 包含环境变量的配置信息 修改启动命令 测试 1.创建文件 下面我们就创建 开发环境 和生产环境 文件创建的位置 根目录下 开发环境 配置 .env.dev 生产环境
YashanDB 是一款适用于多租户环境的数据库解决方案。搭建多租户环境时,需要合理设计数据库架构,确保数据隔离与安全性。以下是一个基本的指导步骤,帮助你搭建 YashanDB 的多租户环境。 一、确定多租户架构模式在搭建多租户环境之前,首先要选择合适的多租户架构模式。常见的模式有:1. 共享数据库,共享模式:所有租户共享同一数据库和表,每个表通过租户ID来区分不同的租户。2. 创建必要的索引:优化查询性能,特别是在多租户环境中,租户ID的索引非常关键。四、数据安全与隔离1. 访问控制:使用中间件或应用层逻辑来控制每个租户对数据的访问。 测试环境:在搭建的环境中进行全面测试,确保数据隔离及安全策略的有效性。2. 部署:将应用程序和数据库部署到生产环境,监控系统性能,确保多租户系统的平稳运行。七、维护与监控1. 以上是搭建 YashanDB 多租户环境的基本指南。根据具体项目需求,可能需要进行一些定制和调整。确保遵守最佳实践,以保障系统的安全性和高效性。
在实际开发过程中,一般可能有以下4个环境: test ------------------ 本地开发环境 sit --------- --------- 测试环境 pre ------------------ 预生产环境 pid --------- --------- 生产环境 那么如何为不同的生产环境配置不同的配置 文件呢? application-sit.properties 测试 application-pre.properties 预生产 application-pid.properties 生产 每个环境下的配置写到对应的配置文件中
python 的时候都会被它强大的包所吸引,想要写一个网站可以使用 Django ,想要做数学运算就想到了 Numpy ,想做数据分析可以用 Pandas 等等 但是安装的包越多,python 的环境就会出现越来多的兼容性问题 上面的指令的意思是,列出现在 Anaconda管理的所有环境,可以看到我的 conda 下面有5个环境,如果是第一次安装一般只有一个环境就是 base 下面我们开始创建我们第一个虚拟环境 输入指令conda ,就可以看见我们的环境名字,这表明我们当前是在这个虚拟环境在进行操作,我们在这里执行pip或是是conda的安装命令都会把安装包安装在这个虚拟环境中。 这里可以看到使用的是一个private名字的虚拟环境,是我之前已经创建好的,如果在你的界面,这里的环境应该是空的,不论怎么样都没关系,因为下面我们会添加我们的conda虚拟环境,在蓝色路径打码的旁边有一个齿轮样式的图标 在右边的选项里面我们选择 conda 环境,选择第二个选项现存有的环境,一般来说 Pycharm 会很贴心的为我们自动设置环境路径,如果没有自动设置也没有关系,一般来说这个虚拟环境的路径在你用户文件夹下的