Spring @Value注释始终评估为null?

因此,我有一个简单的属性文件,其中包含以下条目:

my.value=123

another.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

回到顶部