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