问题:
spring boot yml配置文件中 ,配置前缀0的数字时,会被特殊处理,如下图配置001001 会当做八进制数处理成513
解决方法:
配置项两边加引号或单引号,这时会当做字符串处理
源码类分析:
ConstructYamlInt

分析源码可知:
1、以0b开头的数字,会被当做二进制数处理
2、以0x开头的数字,会被当做十六进制数处理
3、以0开头的数字,会被当做八进制数处理
在SpringBoot项目中使用YAML配置文件时,特定前缀的数字会被误识别为不同进制数。本文分析了这一现象背后的源码逻辑,并提供了避免此问题的简单解决方案。
问题:
spring boot yml配置文件中 ,配置前缀0的数字时,会被特殊处理,如下图配置001001 会当做八进制数处理成513
解决方法:
配置项两边加引号或单引号,这时会当做字符串处理
源码类分析:
ConstructYamlInt

分析源码可知:
1、以0b开头的数字,会被当做二进制数处理
2、以0x开头的数字,会被当做十六进制数处理
3、以0开头的数字,会被当做八进制数处理
3711
1662
2894

被折叠的 条评论
为什么被折叠?