Spring @Value注释始终评估为null?
因此,我有一个简单的属性文件,其中包含以下条目:
my.value=123another.value=hello world
该属性文件使用加载PropertyPlaceHolderConfigurer
,该文件引用了上面的属性文件。
我有以下课程,为此,我正在尝试加载这些属性,如下所示:
public class Config{
@Value("${my.value}")
private String mValue;
@Value("${another.value}")
private String mAnotherValue;
// More below...
}
问题是,mValue
并且mAnotherValue
总是为空…但是在我的控制器中,该值正好被加载。是什么赋予了?
回答:
如果Config
通过手动实例化的实例new
,则不会涉及Spring,因此注释将被忽略。
如果你无法更改代码以使Spring实例化bean(也许使用prototype
-scoped bean),那么另一种选择是使用Spring的加载时类加载器编织功能(请参阅docs)。这是一些低级的AOP,它允许你像往常一样实例化对象,但是Spring会将它们传递到应用程序上下文中,以进行连接,配置,初始化等。
不过,它并非在所有平台上都适用,因此请阅读上面的文档链接以查看它是否对你有用。
以上是 Spring @Value注释始终评估为null? 的全部内容, 来源链接: utcz.com/qa/403872.html