1. 程式人生 > >Spring bean的建立時機

Spring bean的建立時機

建立物件的時機

          1、在預設的情況下,在spring容器啟動的時候建立物件

                   在spring配置檔案中,只要根據以上的三種方式的其中一種配置了,spring容器就會建立物件

                   好處:spring容器和web容器整合的時候,當web容器啟動的時候就可以初始化spring容器了,如果這個時候

                           spring容器內部有錯誤,則直接會報錯

                   如果該bean中存放著大量的資料,而且資料的初始化發生在建立物件的時候,這個時候,資料會過早的駐留在記憶體中

          2、如果在spring的配置檔案中一個bean的配置中有lazy-init="true",那麼該bean在呼叫getBean方法時建立物件

                   不好處:不能過早的發現錯誤

                   好處:按照需求載入資料(什麼時候要什麼時候載入)

 

 

依賴注入的時機

@Component
public class Student {
    private String name;
    public Student() {
        System.out.println("stu被例項化!!!");
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
}

public class Teacher {
    @Resource
    private Student student;
    public Teacher() {
        System.out.println("Teacher被例項化!!!!" + student);
        student.setName("小明");
        System.out.println("老師正在教學生" + student.getName());
    }
}
 
會報NullPointer錯誤!!!

**在spring的文件裡面有說明,建構函式的呼叫要早於setter注入和欄位注入的,所以在呼叫建構函式的時候student還沒有賦值。


--------------------- 
作者:黑暗的笑 
來源:CSDN 
原文:https://blog.csdn.net/xia744510124/article/details/51273576 
版權宣告:本文為博主原創文章,轉載請附上博文連結!