springboot 配置文件配置项前缀为0的数字特殊处理方式

配置文件配置项前缀为0的数字处理

问题

spring boot yml配置文件中 ,配置前缀0的数字时,会被特殊处理,如下图配置04100 会当做八进制数处理成2112

springboot 配置文件配置项前缀为0的数字特殊处理方式_第1张图片

解决方法

配置项两边加引号,这时会当做字符串处理

springboot 配置文件配置项前缀为0的数字特殊处理方式_第2张图片

源码类分析

ConstructYamlInt

springboot 配置文件配置项前缀为0的数字特殊处理方式_第3张图片

分析源码可知:

1、以0b开头的数字,会被当做二进制数处理

2、以0x开头的数字,会被当做十六进制数处理

3、以0开头的数字,会被当做八进制数处理

yml配置文件中写以数字0开头的值

记一次springboot踩的坑

因项目需要在springboot yml配置文件中写以0开头的字符串,当写为01001时,通过注解获取到的值是1001,springboot会自动的把0过滤掉。

因此在使用0开头的字符串时,应该写为“01001” 。注意使用英文标点符号!!!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(springboot 配置文件配置项前缀为0的数字特殊处理方式)