創建對象之后如何體現對象之間的依賴?
Spring容器負責創建Bean和依賴注入,那么Spring是怎么將Bean裝配在一起的呢?
Spring提供了三種方式裝配機制
1.隱式的bean發現機制和自動裝配
?? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
圖一圖二,是兩個組件與Config類同包
圖三,Configuration注解表明Config類是一個配置類,ComponentScan注解表明自動掃描創建該類所在包及子包下的組件;
圖四,使用SpringJUnit4ClassRunner,以便在測試開始的時候自動創建Spring的應用上下文。ContextConfiguration注解會告訴在Config類中加載應用上下文的配置
第一種方式使用了autowired注解,把掃描到合適的bean自動注入;如找不到組件或者找到多個組件報錯,找不到組件可設置required不報錯【autowired(required=false)】注入Null,但使用時可能會報錯。
?2.在JavaConfig中顯式配置
去掉ComponentScan注解,這種方式是通過Config告訴Spring容器需要創建的Bean
2.1默認情況下,bean的ID與帶有@Bean注解的方法名是一樣的。你想為其設置成一個不同的名字的話,可以重命名該方法,也可以通過name屬性指定一個不同的名字。
2.2通過構造器注入創建對象,創建People對象之前會先在容器中創建查找Talent對象
相當于
3.通過XML創建裝配bean
....未完待明天續