学习来源:
spring boot 配置文件配置项 数字特殊处理问题
开发中自定义参数配置:
test:
publicKey: 0201
通过代码读取如下:
@Value("${test.publicKey}")
private String publicKey;
结果取出来的值是:129。
查找了很久,终于找到问题的原因:
该数值配置前缀0,会被特殊处理,当做八进制数处理成129
分析源码可知:
1、以0b开头的数字,会被当做二进制数处理
2、以0x开头的数字,会被当做十六进制数处理
3、以0开头的数字,会被当做八进制数处理
test:
publicKey: "0201"
额外补充:
我自己遇到的问题是长数字字符串被科学计数法了,同样通过引号的模式可以解决!