因此,我有一个包含以下条目的简单属性文件:
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
总是空的……但在我的控制器中,值加载得很好。是什么赋予了?
原文由 Polaris878 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果
Config
的实例正在通过new
手动实例化,那么 Spring 不会参与,因此注释将被忽略。如果您不能更改代码以使 Spring 实例化 bean(可能使用
prototype
-scoped bean),那么另一种选择是使用 Spring 的加载时类加载器编织功能(请参阅 文档)。这是一些低级别的 AOP,它允许您像往常一样实例化对象,但 Spring 将通过应用程序上下文传递它们以连接、配置、初始化等。不过,它并不适用于所有平台,因此请阅读上面的文档链接,看看它是否适合您。