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

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

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

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

具体详细见下,是抄录与:https://blog.csdn.net/chen462488588/article/details/109057342

背景

今天看了一下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

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容