У меня есть проект с начальной загрузкой, который я смог успешно запустить на моем старом Mac с Sierra. Недавно я купил новый Mac с Mojave на нем, и при сборке проекта весенней загрузки я получаю NullpointerException
при попытке использовать зависимость @Autowired.
Я удостоверился, что я собираю проект с использованием оболочки Gradle (версия 4.8) и что на обеих машинах установлена одинаковая версия java (1.8.0_60). Версия весенней загрузки, определенная в файле build.gradle, - 1.5.5.RELEASE.
Я понимаю, что существует круговая зависимость между классами Foo и MyService, но это никогда не было проблемой. В MyService должен быть введен Foo «перед» вызовом метода init () Foo, но, похоже, это не тот случай, когда я собираю и запускаю его на новом компьютере. Я предполагаю, что каким-то образом используется другая версия Spring, где правила внедрения зависимостей как-то отличаются.
@Component
public class Foo {
@Autowired
private MyService service;
@PostConstruct
private void init() {
service.doSomething();
}
public void bar() {}
}
@Component
public class MyService {
@Autowired
private Foo foo;
public void doSomething() {
foo.bar(); // <- NPE occurs here!
}
}