繁体   English   中英

Spring @Value 始终返回 null 值

[英]Spring @Value always returns a null value

我面临与 Spring (不是 spring 引导)有关的开发问题。 在 class 中,我必须检索在属性文件 (application.properties) 上定义的属性的值。 所以,我使用了@Value 注释(通常它很容易使用),但在我的情况下它不起作用。 在我的 class 中,我有以下代码:

@Value("${value:'DefaultValue'}")
private String myValue;

导入: import org.springframework.beans.factory.annotation.Value;

我的属性文件包含: value=a value

但是,当我想测试我的应用程序时,我总是收到一个 null 值(也使用默认值)。 我尝试在我的 class 中添加 deafferents 注释

@Component

...

你有什么建议吗? 我很确定我错过了某个地方的配置,但我不知道是什么。

提前致谢

蒂格鲁

每个使用@Value注释的 class 必须是弹簧管理的 bean。 您可以通过添加@Component注释来实现此目的,但请确保您已在 java 配置中配置了组件扫描@ComponentScan(basePackages = "your.package") ,因此 spring 知道在哪里搜索组件。

最后,在大家的帮助下(特别感谢@M. Deinum,我解决了我的问题。

所以,做的第一件事,用 Spring 测试依赖替换 Junit 依赖(使用)。 其次,我更新了我的测试以使用 Spring 执行这些行:

@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = {AppConfig.class})

这足以检索@Value 字段的默认值。 要检索我必须添加的值

@PropertySource("classpath:application.properties")

在我的 AppConfig class

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM