Spring架構在依賴注入方面是非常靈活和強大的,多了解點一些注入的方式、方法,絕對能優化配置。
idref屬性可以傳入一個bean的名稱,雖然它是指向一個bean的引用,但是得到的是該bean的id名。
它和直接設定serviceRef屬性的value為movieService的差別是前者是能夠保證必須有一個名movieService的bean存在于目前的spring容器中,如果沒有則Spring容器會在初始化階段就會報錯;而後者僅僅是一個字元串,spring容器在初始化不會做任何檢查,很可能将異常推後到運作時抛出。
bean的定義是可以嵌套的。
可以改為這種方式。
這樣内部bean就不需要一個名字的,當然這也意味着它無法被其他bean引用了。當然即使你給它起了名字,Spring容器也會忽略這個名字,其他bean也無法引用它。neibubean的scope始終和waibubean的scope保持一緻。
Java的集合架構中包含很多集合元素,比如List、Map、Set等。Spring支援對這些集合元素的注入。
還可以直接配置java的Properties。
Spring支援使用嵌套屬性注入值。
Restaurant.java
Person.java
需注意除了最後一個屬性,其他屬性不能為空值。
當你初始化一個bean時,需要另一個bean先被初始化,這種情況很常見。雖然Spring在最大程度上能自動按照你期望的順序來初始化bean(比如構造器注入的bean會優先初始化),但是不保證總能符合你的心意。你可以使用depends-on屬性來顯示指定bean的初始化順序。
也可以同時deppends-on多個對象。