天天看點

spring 單例多例,預設,懶加載,初始化調用(1)spring 預設是單例,(2)spring 預設不是懶加載

單例情況下:所有線程對于同一個類共同擁有一個對象,此時如果在類裡面建立一個類變量如下

由于所有線程共享一個類對象,是以也共享一個類變量,每次請求都會增加

    當spring不是懶加載時,項目啟動,spring 初始化,spring 會把所有的 掃描包下的 ,所有帶spring 注解(@component、@repository、@service、@controller)的類  都初始化,初始化時,會調用預設構造方法,即 空的構造方法,當定義了public

aa(){   代碼塊  }   空構造方法時,就會自動執行空構造方法中的語句,當在類中加入非空構造方法,spring會報錯誤,找不到合适的構造方法。

   當spring 設定了default-lazy-init="true",即懶加載時,spring并不會主動初始化帶注解的類,由于在controller中會注入 service層的類,由于,controller層的spring-mvc 不是懶加載,是以,當在controller中注入service時,就會初始化此service類。即調用到誰初始化誰。