Java springbootbean初始化顺序
我使用SpringBoot来开发一个简单的RESTAPI,但我一直坚持spring的命令来初始化应用程序的bean。如何控制应用程序中bean初始化的顺序 我使用的是spring boot 2.1.7,问题是spring试图在ContactRestController依赖的某个服务之前初始化ContactRestController,因此它最终在ContactRestController的构造函数中出现NullPointerException:Java springbootbean初始化顺序,java,spring,spring-boot,Java,Spring,Spring Boot,我使用SpringBoot来开发一个简单的RESTAPI,但我一直坚持spring的命令来初始化应用程序的bean。如何控制应用程序中bean初始化的顺序 我使用的是spring boot 2.1.7,问题是spring试图在ContactRestController依赖的某个服务之前初始化ContactRestController,因此它最终在ContactRestController的构造函数中出现NullPointerException: @RestController public cl
@RestController
public class ContactRestController {
@Autowired
private SomeService ;
// no-args constructor
public ContactRestControlle(){
this.someService.doStuff() ;
}
}
将
SomeService
作为参数添加到构造函数中,并从字段中删除@Autowired
。现在它不可能为空
或者,将构造函数中的代码移动到@PostConstruct
方法
你应该读书。本指南首先列出您的代码作为示例,说明如何避免这种情况。在这种情况下使用
@PostConstruct
注释()这正是构造函数注入优于字段注入的原因。非常感谢,构造函数注入工作得非常好。