当前位置: 首页 > news >正文

yml mysql参数_yml配置--给参数设置默认值

yml配置--给参数设置默认值

在学习eladmin的时候,application-dev.yml中有配置使用了${DB_HOST:localhost},表示是取值。

先在主application.yml配置文件中或者命令行中找键值,若是存在则赋值,若是不存在则使用默认的值。

背景

今天看了一下pig项目,对其中的 user: ${MYSQL-USER:root} 这种写法感到有些陌生,所以本着多学点东西的想法去一探究竟。

db:

num: 1

user: ${MYSQL-USER:root}

password: ${MYSQL-PWD:root}

url:

0: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_config}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true

123456

解释

${}这种写法很明显是取值,从一个已经定义好的配置文件中,根据key取出value,在spring开发中很常见, 以\user:  ${MYSQL-USER:root}为例,它代表的意思是代码里先从配置文件(springboot的yml配置或者命令行指定)去找key是MYSQL-USER的值,把它的值赋值给user,如果该参数不存在,则就把root赋值给user。

注意:如果没找到MYSQL-USER 配置,同时又没给一个默认值,则会启动就会报错的!!!!所以为了保险起见给个默认值

这种取值的方式和@Value注解取值是一样的

//yml配置

province:

city: xxx

//java中取值最好也写上默认值

@Value("${province.city:beijing}")

public String city;

1234567

总结

为什么要这样写,我想到的一点是方便以后修改配置,比如环境移植,换一个新的环境我只需要修改yml配置,或者干脆就在命令行修改。

java -jar -DMYSQL-USER=zs xxx.jar

相关文章:

  • ant java eclipse_(转)Eclipse中使用Ant
  • java json merge_JavaScript 如何合并两个Json对象
  • java setselectionend_Java Gallery.setSelection方法代码示例
  • stringbuffer java API_StringBuffer类
  • jasperreport java数据_ireport5.6.0+jasperreports 使用java对象做为数据源导出excel或者Pdf...
  • 与时间相关的java源码_JAVA的Date类与Calendar类
  • Java修改文件扩展属性_扩展PropertyPlaceholderConfigurer对prop文件中的属性加密(修正1)...
  • java定义显性构造函数_Java基础之三、类的特性和接口
  • mysql用其他表更新_mysql用一个表更新另一个表
  • java maven 打包jar_maven 打包可执行 jar包 java application 方法
  • java专业考独立本科_复旦大学-计算机网络(独立本科B080709)(停考过渡)
  • java 自定义组件状态改变事件_Swing自定义事件-一个组件的事件传递给另一个组件...
  • 迁移到php7,PHP扩展迁移为PHP7扩展兼容性问题记录
  • ubuntu 18.04安装php 7,Ubuntu 18.04安装和配置PHP 7.2详细方法介绍
  • 应聘php开发需要哪些东西,php工程师面试需要哪些方面
  • 30天自制操作系统-2
  • CentOS7 安装JDK
  • DOM的那些事
  • ES6系统学习----从Apollo Client看解构赋值
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Java 网络编程(2):UDP 的使用
  • Javascript基础之Array数组API
  • mockjs让前端开发独立于后端
  • PhantomJS 安装
  • Spring框架之我见(三)——IOC、AOP
  • Terraform入门 - 1. 安装Terraform
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 高程读书笔记 第六章 面向对象程序设计
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 前端攻城师
  • 前端自动化解决方案
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 学习笔记:对象,原型和继承(1)
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​MySQL主从复制一致性检测
  • !!Dom4j 学习笔记
  • $refs 、$nextTic、动态组件、name的使用
  • %check_box% in rails :coditions={:has_many , :through}
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (day 12)JavaScript学习笔记(数组3)
  • (Python第六天)文件处理
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二)WCF的Binding模型
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四) Graphivz 颜色选择
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)LINQ之路
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)项目管理杂谈-我所期望的新人
  • .htaccess 强制https 单独排除某个目录
  • .net wcf memory gates checking failed
  • .NET简谈设计模式之(单件模式)