[英]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.