当我使用:
@ContextConfiguration(classes = { DmiVehicleRTExportConfig.class },
initializers = ConfigFileApplicationContextInitializer.class)
Run Code Online (Sandbox Code Playgroud)
我的集成测试因以下属性而失败:
${oauth2client.prematureTimeout:600}
Run Code Online (Sandbox Code Playgroud)
没有得到 600 的默认值。
这是通过使用解决的:SpringApplicationConfiguration但我想使用ConfigFileApplicationContextInitializer.class而不是SpringApplicationConfiguration.
谢谢。
我遇到过同样的问题。PropertySourcesPlaceholderConfigurer.class需要补充:
@ContextConfiguration(classes = { DmiVehicleRTExportConfig.class,
PropertySourcesPlaceholderConfigurer.class },
initializers = ConfigFileApplicationContextInitializer.class)
Run Code Online (Sandbox Code Playgroud)
Spring 团队刚刚添加了一条关于此的说明:
单独使用 ConfigFileApplicationContextInitializer 不会为 @Value("${...?}") 注入提供支持。它唯一的工作是确保 application.properties 文件加载到 Spring 的 Environment 中。对于@Value 支持,您需要另外配置一个 PropertySourcesPlaceholderConfigurer 或使用 @SpringBootTest ,其中一个将为您自动配置。
| 归档时间: |
|
| 查看次数: |
4653 次 |
| 最近记录: |