You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot项目中如何在application.yml配置文件中使用算术运算?

问题原因

  • 缺失SpEL表达式包裹:properties配置中你使用#{}标识需要Spring解析的表达式逻辑,但是迁移到YAML后没有保留#{}包裹,Spring会把配置内容识别为普通字符串,不会执行计算。
  • YAML语法错误:你在配置中重复定义了interval根节点,YAML解析时后定义的同层级同名节点会覆盖之前的内容,最终只会保留interval.seconds相关配置,interval.milliseconds.cleaner配置会丢失。
  • 特殊字符未转义:YAML中#是注释标识,如果你直接以#开头写配置值,后面的内容会被识别为注释直接忽略,需要用引号包裹表达式内容。

解决方案

修改为如下正确的YAML配置即可:

seconds:
  timeOut: 10
interval:
  milliseconds:
    cleaner: '#{${seconds.timeOut} * 2 * 1000}'
  seconds:
    cleanerOffset: '#{${seconds.timeOut} * 3}'

修改后Spring会正常识别SpEL表达式,完成数值计算,cleaner会解析为数值20000,cleanerOffset会解析为数值30,不会再抛出字符串无法转为Long的异常。

内容的提问来源于stack exchange,提问作者kalosha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:06:07