java Spring@Value总是返回空值
我面临着一个与Spring(而不是Spring boot)相关的开发问题。 在类中,我必须检索在属性文件(application.properties)上定义的属性的值。 因此,我使用@Value注释(通常很容易使用),但在我的情况下它不起作用。 在我的课堂上,我有以下代码:
@Value("${value:'DefaultValue'}")
private String myValue;
通过导入:import org.springframework.beans.factory.annotation.Value;
我的属性文件包含:value=a value
但是,当我想测试我的应用程序时,我总是收到一个空值(也使用默认值)。 我试着在我的课堂上添加不同的注释,比如
@Component
你有什么建议吗?我很确定我错过了某个配置,但我不知道是什么
提前谢谢
提格鲁
# 1 楼答案
使用
@Value
注释的每个类都必须是spring管理的bean。您可以通过添加@Component
注释来实现这一点,但请确保您已经在java配置中配置了组件扫描@ComponentScan(basePackages = "your.package")
,这样spring就知道在哪里搜索组件# 2 楼答案
最后,在大家的帮助下(特别感谢@M.Deinum),我解决了我的问题
所以,首先要做的是,用Spring测试依赖项替换Junit依赖项(use)。 其次,我用以下几行代码更新了要用Spring执行的测试:
这足以检索@value字段的默认值。 要检索我必须添加的值
在我的AppConfig类中