http://xiangai.taobao.com
http://shop148612228.taobao.com

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

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的时候,最好带上单引号.
 

posted @   万事俱备就差个程序员  阅读(437)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-06-13 一篇 JPA 总结
2018-06-13 System.Reflection.TargetException:“非静态方法需要一个目标。”
2014-06-13 MVC View中获取Url参数的值
2014-06-13 Request.RequestContext.RouteData.Values获取不到参数值
2012-06-13 Javascript 钩子机制——开会得出的结论
2012-06-13 Javascript 页面模板化 ——大部分人没有使用过的方法
2012-06-13 浏览器鼠标手势原理简析

http://xiangai.taobao.com
http://shop148612228.taobao.com
如果您觉得对您有帮助.领个红包吧.谢谢.
支付宝红包
微信打赏 支付宝打赏
点击右上角即可分享
微信分享提示