弹簧引导 Bean 初始化顺序



我正在使用 spring boot 来开发一个简单的 REST API,但我坚持 spring 的顺序来初始化我的应用程序的 bean。 如何在应用程序中控制 Bean 初始化的顺序?

我正在使用 Spring boot 2.1.7 问题是 spring 尝试在 ContactRestController 依赖的 SomeService 之前初始化 ContactRestController,因此它最终在 ContactRestController 的构造函数中出现 NullPointerException:

@RestController
public class ContactRestController {
@Autowired
private SomeService ;
// no-args constructor 
public ContactRestControlle(){
this.someService.doStuff() ;
}
}

SomeService作为参数添加到构造函数中,并从字段中删除@Autowired。现在它不可能为空。

或者,将构造函数中的代码移动到@PostConstruct方法。

您应该阅读 在 Spring 启动时运行安装数据。本指南首先列出您的代码作为如何不执行此操作的示例。

最新更新