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

Spring Boot读取application-test.yaml配置值错误:获0而非配置的10

问题原因及解决方案

核心问题

你在测试类里手动new了OperationProperties实例,这导致Spring容器没有参与该实例的创建和配置注入。@ConfigurationProperties注解的生效依赖Spring容器对Bean的管理,手动创建的对象不会触发配置绑定逻辑,所以dayPeriod会使用int类型的默认值0。

正确的做法

需要让Spring容器来注入OperationProperties实例,而不是手动创建,具体修改方式如下:

修改测试类代码

@ActiveProfiles("test")
@SpringBootTest // 启动Spring容器,加载配置和Bean
class TimeUtilsTest {
   @Autowired // 由Spring容器注入配置好的实例
   private OperationProperties operationProperties;

   @Test
   void test(){
       System.out.println(operationProperties.getDayPeriod()); // 会输出10
   }
}

额外说明

  • @SpringBootTest注解会启动完整的Spring应用上下文,确保配置类和配置文件被正确加载。
  • @Autowired会从Spring容器中获取已经完成配置绑定的OperationProperties实例,此时dayPeriod的值会从application-test.yml中读取到10。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:12:36