spring boot或spring cloud项目中使用系统环境变量问题 原创 2021-05-25 18:08:23.0 阅读(4314)次 #### 前言 项目开发过程中有时候需要用环境变量来解决一些复杂配置的问题,比如同一个服务要部署多个实例,但这些实例需要使用不同的配置时,这些就可以用环境变量来解决,这不管是原始的部署方式或使用k8s部署方式都是可以使用环境变量来解决这种问题。 下面我们分享下开发和部署时怎么设置环境变量 #### 代码示例 先上示例代码,比如我们要在bootstrap.yml中读取env_test这个环境变量,如下配置: ```yaml env: test: ${env_test} ``` 如果你遇到spring boot项目bootstrap.yml配置无法生效,可以看看我上一篇文章[http://www.classinstance.cn/detail/156.html](http://www.classinstance.cn/detail/156.html "http://www.classinstance.cn/detail/156.html") . java代码中加载这个配置: ```java @Component public class EnvConfig { @Value("${env.test}") private String envTest; public String getEnvTest() { return envTest; } public void setEnvTest(String envTest) { this.envTest = envTest; } } ``` . ####开发 开发时我们肯定也要配置这个环境变量,才能让我们代码跑得起来,当然你要是不用测试,开发完就上线,我只能说您是大佬,小老弟佩服。 好圆规正转,我们开发时怎么配置环境变量呢?有两种方式,如下图,Edit Configurations:  其中VM options中的环境变量都要用—D开头,如图中所示:-Denv_test=443,就表示env_test变量值为443,这样配置完,我们的bootstrap.yml就能读取到这个环境变量了 . ####部署 讲完开发,那么线上部署怎么做呢? 线上部署时有三种方式: 1.在启动java程序命令中加入-Denv_test=443,如下: java -jar -Denv_test=443 demo-0.0.1-SNAPSHOT.jar 这样不同实例就可以使用不同环境变量了。 . 2.另一种是直接配置linux的环境变量,spring boot或spring cloud项目会自动加载环境变量。如下命令就是添加env_test这个环境变量: ```shell echo "export env_test=443" >> /etc/profile && source /etc/profile ``` 启动命令直接java -jar就可以了。 . 3.最后一种呢,如果你是k8s部署方式,就可以使用k8s上的环境变量来达到这个目的。 java java基础 spring boot spring cloud 上一篇:bootstrap.yml配置报错:Could not resolve placeholder 'xx' in value 下一篇:clickhouse清空删除表数据
相关文章 spring boot项目时间字段少8小时问题(1833) 如何实现生产环境关闭swagger,只有开发环境中开启swagger(7100) Spring boot项目引入jar包时启动报错:java.lang.StackOverflowError(4686) 获取eureka的注册服务的实例列表(1857) spring boot项目默认日志配置(1111) spring boot多module项目导入Eclipse(2380) Spring boot跨域配置(2028) the dependencies of some of the beans in the application context form a cycle(16570) redis报错远程主机强迫关闭了一个现有的连接以及超时问题(16559) springboot项目初始化druid连接池时报错java.lang.NullPointerException: null(5996) 推荐文章 使用spring4实现websocket连接(1) Parameter index out of range (1 > number of parameters, which is 0(7) spring cloud+feign+mybatis中使用seata0.9实现分布式事务(7) spring cloud gateway报错Only one connection receive subscriber allowed(82) spring cloud中Feign调用诡异报错MethodNotAllowed: status 405 reading(116) elasticsearch7.1保存时报错: Validation Failed: 1: type is missing;(7) 聊聊数据保存到MySQL后数据乱码的问题(1) jquery对象与dom对象互转(1) linux使用epel源yum安装iftop、nload、nginx等(2) linux下nginx安装其他模块(1) 热门文章 java stream去重的几种方式(40819) the dependencies of some of the beans in the application context form a cycle(16324) 解决mybatis打印查询结果集造成太多日志的问题(9839) java enum枚举转list和Map(9722) java stream List转Map与List转List与Map转List以及List转Map(8468) ServletRequest转HttpServletRequest设置header之后取不到header的问题(8434) java中BufferedImage转成 base64字符串(8098) 切分List集合为多个List集合(7385) maven修改jar包版本不生效解决办法(6990) bootstrap.yml配置报错:Could not resolve placeholder 'xx' in value (6949) 标签列表 java java java java java java java基础 微服务 异常处理 mysql clickhouse clickhouse clickhouse clickhouse clickhouse spring cloud spring boot linux elasticsearch feign jdbc spring js docker postgresql solr seata nginx maven gateway hsqldb 数据库 架构 大数据分析 分布式事务 redis canal dubbo hadoop 消息队列 win10 websocket springmvc git html select2 mybatis jenkins rocketmq quartz activemq 数据库集群 ajax bat 电脑 笔记 eclipse 设计模式 阿里云 github freemarker jvm jquery javamail redission redission对象 hystrix http hibernate springmail svn ubuntu ueditor xheditor zookeeper 分布式 小程序 开发工具 gitlab