项目场景:
公司的一个换汇新业务调用第三方接口时yml取值011
问题描述:
yml中的属性值为011,日志中显示取到的值为9.
nium:
api-key: xxxxxxxxxxxxxxxxxxxxx
api-url: xxxxxxxxxxxxxxxxxxxx
clientHashId: xxxxxxxxxxxxxxxxxxx
plasticId: xxxx
logoId: 011
原因分析:
spring boot yml配置文件中 ,配置前缀0的数字时,会被自动转换为8进制数。
我们可以看到源码如下:
- 以0b开头的数字,会被当做二进制数处理
- 以0x开头的数字,会被当做十六进制数处理
- 以0开头的数字,会被当做八进制数处理
- +和-也会被特殊处理
解决方案:
nium:
api-key: xxxxxxxxxxxxxxxxxxxxx
api-url: xxxxxxxxxxxxxxxxxxxx
clientHashId: xxxxxxxxxxxxxxxxxxx
plasticId: xxxx
logoId: "011"
把值用引号引起来即可!!!