【发布时间】:2011-11-07 09:30:47
【问题描述】:
有了这个类
@Component
public class Sample {
@Value("${my.name}")
public static String name;
}
如果我尝试Sample.name,它总是'null'。所以我尝试了这个。
public class Sample {
public static String name;
@PostConstruct
public void init(){
name = privateName;
}
@Value("${my.name}")
private String privateName;
public String getPrivateName() {
return privateName;
}
public void setPrivateName(String privateName) {
this.privateName = privateName;
}
}
此代码有效。 Sample.name 设置正确。这是好方法还是不好?如果没有,有没有更好的方法?又该怎么做呢?
【问题讨论】:
-
这不会解决;如果在创建对象之前使用了静态变量。例如)如果在静态块下使用静态变量来构造资源,那么资源将被构造为null。
标签: spring code-injection