參考https://www.cnblogs.com/x-jingxin/p/12918974.html
@RestController public class AController { private User user; /** * 這里不加@Autowired也會默認注入user * 因為只有一個有參構造器時,參數值會從容器中拿 */ @Autowired public AController(User user){ this.user = user; this.user.getName(); } } //而如果下面這樣寫會報空指針 @RestController public class AController { @Autowired private User user; /** * 報錯:因為構造方法會提前於@Autowired執行 */ public AController(){ user.getName(); } }
注意:Java類中變量的初始化順序為:靜態變量或靜態語句塊–>實例變量或初始化語句塊–>構造方法–>@Autowired