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. Gaze Estimation学习笔记(1)-Appearance-Based Gaze Estimation in the Wild

    目录 前言 简介 论文概述 论文主要内容 MPIIGaze数据集 引入CNN的新Gaze Estimation方法 人脸对齐与3D头部姿态判断 归一化 使用CNN进行视线检测 论文作者进行的实验及结果 ...

  2. 第08组 Beta冲刺(3/4)

    队名 八组评分了吗 组长博客链接(2分) 组员1李昕晖(组长) 过去两天完成了哪些任务 文字/口头描述 了解各个小组的进度与难以攻破的地方,晚上安排开会,安排新的冲刺任务. 重新分配小组及个人任务. ...

  3. spring容器干掉if-else

    场景说明 最近新做一个项目,需要对不同店铺的商品做不同处理.例如storeA需要进行handleA操作,storeB需要进行handleB操作,如此类推 大家很容易会想到下面的实现方法 public ...

  4. bitcoinjs-lib 哈希交易之多笔交易合并。

    转账的时候需要手动寻找每一笔未花费记录实在太费时. 比特币转账需要提取或合并所有未花费的交易中的比特币,才能实现交易. import * as bitcoin from 'bitcoinjs-lib' ...

  5. Metasploit使用内网跳板, 扫描局域网主机

    最近,拿到一台内网机器, 苦于无法使用nmap扫描改主机的内网, 所以才有此文 在跳板机子获取一定权限后,需要积极的向内网主机权限发展,获取指定的目标信息,探查系统漏洞,借助msf已经得到的meter ...

  6. 【JavaScript】frame跨域访问元素

    什么是跨frame访问元素呢?比如main.html中有如下代码: <frameset cols="50%,*"> <frame src="frame1 ...

  7. Spring不能直接@autowired注入Static变量/ 关于SpringBoot的@Autowired 静态变量注入

    昨天在编写JavaMail工具类的时候,静态方法调用静态变量,这是很正常的操作,当时也没多想,直接静态注入. @Component public class JavaMailUtil { @Autow ...

  8. [转]js对象中取属性值(.)和[ ]的区别

    原文地址:https://www.jianshu.com/p/6a76530e4f8f 今天在写js的过程中遇到这么一个问题,取一个对象的属性值,通过obj.keys怎么都取不出来,但是用obj[ke ...

  9. MQTT研究之EMQ:【EMQX使用中的一些问题记录(1)】

    issue 1. EMQX的共享订阅 EMQX是一个非常强大的物联网通信消息总线,基于EMQX开展应用开发,要注意很多配置细节问题,这里要说到的就是共享订阅以及和cleanSession之间的关系问题 ...

  10. WebGL学习笔记(十):雾化

    雾化是指距离我们较远的物体看不清晰的情况,比如模拟大雾环境,或者模拟水下环境时会用到. 实现雾化的方式有很多种,我们这里使用的是线性雾化的方式: 线性雾化 线性雾化比较简单,我们算出每个像素点到摄像机 ...