@PostConstruct执行中@Value静态注释为null

时间:2019-06-12 10:43:27

标签: java spring-boot static postconstruct

我正面临这个问题:我有一个类,其中@Value变量声明为静态,如图所示。当我的应用程序启动对此类方法的@PostConstruct执行访问时,找到具有空值的变量。

如果我在执行@PostConstruct之后调用此类,则可以看到@Value静态变量不为null,并且具有正确的值。

如何在@PostConstruct执行中获取具有实际值的变量?

这是我的代码:

@Component
public class ValidacionesUtils {

public static String variable;

@Value("${access.to.my.variable}")
public void setVariable(String variable) {
    this.variable = variable;
}

@PostConstruct
private void init() {
    if (variable==null) {
        log.error("This is what my application prints");
    } else {
        log.error("This is not printed");
    }
}

}

1 个答案:

答案 0 :(得分:0)

为什么要声明它是公共的和静态的?

尝试做

@Value("${access.to.my.variable}")
private String variable;

这种方式应该可以在@PostConstruct中使用