Spring的DI的一些理解

2021-10-05 15:48:20 字數 968 閱讀 8455

之前一直存在這樣乙個疑問,也就是我們在使用註解注入元件的時候,如果我們使用@bean註解來注入乙個元件的時候,我們可以在方法內使用有參構造器來初始化bean,但是我們在使用@componentscan來掃瞄包或者使用@import來匯入類的時候用的是無參構造器。

使用的是無參構造器的驗證:

如下:

public

class

person

}

會報錯:

org.springframework.beans.factory.unsatisfieddependencyexception: error creating bean with name 'com.ustc.person'

: unsatisfied dependency expressed through constructor parameter 0

;

即我們的成員變數都是初始值(0/null),那我們拿到這個bean還有什麼意義?

現在想想是個很弱智的問題,為什麼這麼說呢?ioc容器在初始化的時候,bean越"空白"不是越對應了我們di的目的嗎?即解耦。

舉個例子模擬:

前者拿到就已經固定,後者的柄對外提供介面(成員變數使用介面),使得可以適配該介面的所有的頭(介面的實現類),我們需要什麼樣的頭(實現類),就去盒子拿什麼樣的頭(模擬去ioc容器中拿對應的bean)裝到柄上(即di),從而實現了乙個柄可以勝任更多的工作(使得類的適配性更好)。還有就是我們只要創造出的頭適合這個介面,我們就可以裝的上去來完成對應的用途。

可能這些思想的啟發就來自生活中類似的事情吧!

關於spring父子容器的一些理解

今天搭框架的時候發現以前寫spring和mybatis的整合配置檔案的時候總是寫成乙個註解掃瞄 然後在springmvc的配置檔案中又要再配置一次 然後記起來發現如果不在springmvc的配置檔案中再配置一次就會報404的錯誤 現在整理一下 也方便以後回憶學習.spring mybatis con...

Spring之依賴注入 DI 的理解

舉個例子,假如我需要乙隻紅顏色的筆定義乙個紅筆類實現了pen介面,定義乙個紅色替芯為私有變數 public class redpen implements pen public void use 上面的類實現了我們的需求,但現實生活中需求變的比女朋友的心情還快,如果我需要綠色的筆呢?或者其他顏色?當...

spring的一些註解

spring的一些註解 要使用spring註解首先肯定要用scanner,spring配置檔案中要有 其中com.neu就是要掃瞄的包 但是必須有下面的xmlns context以及最後3個schema xmlns xsi xmlns context xsi schemalocation sprin...