spring boot 配置文件配置项 数字特殊处理问题
开发中遇到问题:配置文件中配置参数,
test:
publicKey: 0201
代码中读取,具体如下:
@Value("${test.publicKey}")
private String publicKey;
结果取出来的值是:129。
查找了很久,终于找到问题的原因:
该数值配置前缀0,会被特殊处理,当做八进制数处理成129
分析源码可知:
1、以0b开头的数字,会被当做二进制数处理
2、以0x开头的数字,会被当做十六进制数处理
3、以0开头的数字,会被当做八进制数处理
解决方法:
test:
publicKey: "0201"
这样后台读取就可以了
本文讲述了在SpringBoot项目中,配置文件中的数字配置被错误解析为八进制的问题及解决办法。当配置数字以0开头时,系统将其识别为八进制数而非十进制数,导致读取值与预期不符。通过添加双引号可避免这一问题。
909





