Spring Boot 使用 @Value 注解获取 YML 配置文件的值为 Infinity

最近在做项目过程中,发现通过预发环境的配置文件去调用第三方服务的时候总是提示签名appId不正确,仔细检查了yml配置文件发现并无异常,代码逻辑也是正确的,最诡异的是只有预发环境出现问题。

具体问题描述如下:

yml文件中配置如下:

paas:
    appId: 6E212341234
    secretKey: EADvFUILWDn9FrWIiRK6w7R+EZPLH2h0d7hNivHBetLGRdH05dfslYf
    wGKDfQpEeT/2C0sqK0SpldlbbnhekAx/n0D4wDDHdgFMXb53ldZovKbNEJoQr6f4
    scCmNX+OX71YMsDnGmRKK5yadJPqJ7XOu1lmZk+T/mocbr8DH+P9Z78cFFq7qJvu
    3cMv5J5acb3GE8Y2bG0rebrX3fh7BkWEkqi4640YcnVqLno0yDscjleV01Bk7X4N
    0cmwAS84LrfYglqIqzCPAoKrvwKBgQDVN0L196UwEyG3IapDydHoCK0Juqd8iDCO
    zfCpBbLTK08+JcslcPxu5Gdy1PE0QvBbu1/Lyp3eQELwL4tq3m1mVoSfcfhjOLLD
    7JaUs1oawloAKKcfBQ+/woaAM0DZHzvKloFt....
    

项目中代码如下:

public class xxxx {
    
    //问题在于这里获取到的值为Infinity
    @Value("${paas.appId}"}
    private String appId;

    @Getter
    .....
    @Setter
    .....

}

后发现appId的string值恰好与科学计数法相似,遂将YML里面appId 加上单引号‘ ’,问题解决。

paas:
    appId: '6E212341234'
    secretKey: EADvFUILWDn9FrWIiRK6w7R+EZPLH2h0d7hNivHBetLGRdH05dfslYf
    wGKDfQpEeT/2C0sqK0SpldlbbnhekAx/n0D4wDDHdgFMXb53ldZovKbNEJoQr6f4
    scCmNX+OX71YMsDnGmRKK5yadJPqJ7XOu1lmZk+T/mocbr8DH+P9Z78cFFq7qJvu
    3cMv5J5acb3GE8Y2bG0rebrX3fh7BkWEkqi4640YcnVqLno0yDscjleV01Bk7X4N
    0cmwAS84LrfYglqIqzCPAoKrvwKBgQDVN0L196UwEyG3IapDydHoCK0Juqd8iDCO
    zfCpBbLTK08+JcslcPxu5Gdy1PE0QvBbu1/Lyp3eQELwL4tq3m1mVoSfcfhjOLLD
    7JaUs1oawloAKKcfBQ+/woaAM0DZHzvKloFt....
    

YML中使用‘ ’(单引号)不会转换单引号里面的特殊字符,如 \n等。

YML中使用" "(双引号)会转换双引号里面的特殊字符,如

//在yml中单引号值的示例
eg: 'a \n b \n c'
//实际为
a \n b \n c

//在yml中双引号的值示例
eg: "a \n b \n c"
//实际为
a
b
c

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值