我正在使用 @Value
注释来获取属性,它在 Normal 方法中成功发生但在 Class 构造函数中没有发生。任何人都可以说出可能是什么原因吗?
Class A {
@Value("#{columnProperties['Users.Columns']}")
String columnNames;
A()
{
System.out.println("In Constructor="+columnNames);
}
void show()
{
System.out.println("In Method="+columnNames);
}
}
当我做的时候
A obj=new A();
我得到输出
In Constructor=null
和obj.show()
给出
In Method=A,B,C
(这意味着期望的结果)
我希望在调用构造函数后立即设置值。如果我将 String 声明放在静态或初始化 block 中,则会出现编译错误。
最佳答案
当对象还没有完成构建时(也就是说,对象的构造函数还没有完成),我们如何确定对象的成员真正就绪了?在我看来,在构造函数完成之前,Spring 可能不会注入(inject)该值。
关于java - @Value 注解不从属性文件中注入(inject)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7426218/