MyPropertyManagerClass

MyPropertyManagerClass

我正在用spring Autowiring 对象,并且正在使用相同的 Autowiring 对象调用方法。它抛出NullPointerException。问题是我正在静态块内调用该方法。下面是我的代码-

@Autowired
static MyPropertyManagerClass myPropertyManagerClass;

private static URL SERVICE_URL = null;

static {
    try {

        SERVICE_URL = myPropertyManagerClass.getServiceURL();
    }
    catch (Exception e) {
        log.error("Exception Occurred While Invoking myPropertyManagerClass.getServiceURL() : " , e);
    }
}

如果我没看错,那是因为静态块先被加载。我有什么办法可以不用创建带有new关键字的对象就可以完成这项工作?

最佳答案

加载类后,将在初始化类时调用静态块。您组件的依赖项尚未初始化。这就是为什么您得到一个NullPointerException(您的依赖项为null)的原因。

将您的代码移动到带有@PostConstruct注释的方法。这将确保您的代码在组件的所有依赖项都初始化时运行

09-11 19:56