sping boot/cloud配置文件 on 读取为true

原文地址:https://blog.csdn.net/hb9176070/article/details/82749771

最近在写spring cloud 项目时需要配置开关,按照以往写项目的习惯,就在配置文件命名了key 之后写了 on.
项目启动之后,神奇的事情出现了,项目读取到的值居然变成了 true!这让我大吃一惊,问了下身边的资深同事,同事说:这怎么可能,你不扯淡呢,你又搞了什么鬼,on怎么可能变成true??! 没办法,只能自己摸索.
首先核对了配置项和读取的代码,发现没问题,再对spingCloud的相关源码不断的debug进去看看哪里出了问题,但是找了半天,也没发现有问题.
最后没辙了,在on上加上单引号,变成’on’,代码读取出来的终于读到了正确的"on"!
问题是解决了,但是对于出现这样的原因还是不明白,本人做了大胆的猜测:spingCloud底层在读取配置文件时如果读取到了非字符串 on 则会转换成true,那么相应的,如果配置了非字符串 off,应该会读取成false , on 和off 对于spingCloud是两个特殊的单词,会转义.
本着这个猜测,做了如下测试:

配置项:

2.测试代码以及debug结果

由上面的配置项代码可以看出: on 和 off 确实被读取成了 true和false, 带引号的’on’和’off’才会读取成 on 和off ,而普通的字符不带上单引号仍然读出是相应的字符串.
总结: on和off带有开关的常识,spingCloud底层将这两个单词进行了转义,在我们实在需要使用这两个单词作为配置项但是又不想读取成true或者false的时候,最好带上单引号.

sping boot/cloud配置文件 on 读取为true的更多相关文章

  1. spring boot: 从配置文件中读取数据的常用方法(spring boot 2.3.4)

    一,从配置文件中读取数据有哪些方法? 通常有3种用法: 1,直接使用value注解引用得到配置项的值 2,  封装到Component类中再调用 3,  用Environment类从代码中直接访问 生 ...

  2. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件

    精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件 内容简介:本文介绍 Spring Boot 的配置文件和配置管理,以及介绍了三种读取配置文 ...

  3. spring boot 项目从配置文件中读取maven 的pom.xml 文件标签的内容。

    需求: 将pom.xml 文件中的版本号读取到配置文件并打印到日志中. 第一步: 在pom.xml 中添加以下标签. 第二步: 将version 标签的值读取到配置文件中 这里使用 @@  而不是  ...

  4. Sping Boot入门到实战之实战篇(一):实现自定义Spring Boot Starter——阿里云消息队列服务Starter

    在 Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置 这篇中,我们知道Spring Boot自动化配置的实现,主要由如下几部分完成: @EnableAutoConfigu ...

  5. spring boot / cloud (三) 集成springfox-swagger2构建在线API文档

    spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...

  6. spring boot / cloud (六) 开启CORS跨域访问

    spring boot / cloud (六) 开启CORS跨域访问 前言 什么是CORS? Cross-origin resource sharing(跨域资源共享),是一个W3C标准,它允许你向一 ...

  7. spring boot / cloud (十五) 分布式调度中心进阶

    spring boot / cloud (十五) 分布式调度中心进阶 在<spring boot / cloud (十) 使用quartz搭建调度中心>这篇文章中介绍了如何在spring ...

  8. spring boot / cloud (十六) 分布式ID生成服务

    spring boot / cloud (十六) 分布式ID生成服务 在几乎所有的分布式系统或者采用了分库/分表设计的系统中,几乎都会需要生成数据的唯一标识ID的需求, 常规做法,是使用数据库中的自动 ...

  9. spring boot / cloud (十七) 快速搭建注册中心和配置中心

    spring boot / cloud (十七) 快速搭建注册中心和配置中心 本文将使用spring cloud的eureka和config server来搭建. 然后搭建的模式,有很多种,本文主要聊 ...

随机推荐

  1. Java String.split()函数分隔回车注意事项

    作者:Sun1956 原文:https://blog.csdn.net/sun1956/article/details/45096117 --------------------- 我们在Java中如 ...

  2. AttributeError: 'Model' object has no attribute 'name'

    Traceback (most recent call last): File "<ipython-input-15-7fa9988e38ef>", line 1, i ...

  3. [Gamma阶段]第七次Scrum Meeting

    Scrum Meeting博客目录 [Gamma阶段]第七次Scrum Meeting 基本信息 名称 时间 地点 时长 第七次Scrum Meeting 19/06/3 大运村寝室6楼 25min ...

  4. nodejs异常处理过程/获取nodejs异常类型/写一个eggjs异常处理中间件

    前言 今天想写一下eggjs的自定义异常处理中间件,在写的时候遇到了问题,这个错误我捕获不到类型?? 处理过程,不喜欢看过程的朋友请直接看解决方法和总结 看一下是什么: 抛出的异常是检验失败异常Val ...

  5. vs2017下载安装

    https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes

  6. Spring 事务小结

    @Override@Transactionalpublic void add() { this.in();} public void in(){ NyOrder nyOrder=new NyOrder ...

  7. [转]将已有项目代码加入svn版本控制

    原文链接:https://blog.csdn.net/aaroun/article/details/79074178 将已有项目代码加入svn版本控制 - TortoiseSVN入门篇Windows下 ...

  8. Spring @RequestMapping 参数说明

    @RequestMapping 参数说明: value:  指定请求的实际地址, 比如 /action/info之类.method:  指定请求的method类型, GET.POST.PUT.DELE ...

  9. vmware新加磁盘fdisk看不到的处理

    虚拟机硬盘空间不够了,做了lvm准备加块硬盘扩容,在vcenter控制台加了磁盘,结果操作系统里面fdisk -l看不到新加的硬盘,又不想重启怎么办,一条命令就可以搞定. # 注意中间有空格echo ...

  10. redis报错OOM command not allowed when used memory > 'maxmemory'

    登录到redis上查询 ./redis-cli -h IP -p port -a passwd redis>info memory 查询,内存已耗尽 查询配置文件,发现之前配置最大内存的策略设置 ...