之前一直存在這樣乙個疑問,也就是我們在使用註解注入元件的時候,如果我們使用@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...