現在有乙個策略的工廠
@component
public class strategyfactory
}
乙個抽象類,兩個實現類
public abstract class taskhandle
@component
public class taskhandleone extends taskhandle;
}
@component
public class taskhandletwo extends taskhandle;
}
spring會自動注入taskhandle的繼承類到handlemap中,
defaultlistablebeanfactory#doresolvedependency()中。總結來說規則就是:
1、如果是陣列,則獲取陣列元素型別,查詢匹配該型別的所有bean,返回乙個這些bean的陣列;
2、如果該類可賦給collection,並且是乙個介面,則獲取集合元素型別,查詢匹配該型別的所有bean,返回乙個這些bean的集合;
3、如果該型別是map(注意是type == map.class),且key是string型別,則獲取map的value的型別,查詢匹配該型別的所有bean,這是乙個key為bean name、value為bean例項的乙個map,返回這個map。
通過findautowirecandidates的方法找到taskhandle.class的繼承類,
Spring自動裝配
先在cn.csdn.hr.dao包中建立幾個檔案 public inte ce basedao public class basehibernatedaoimpl implements basedao public inte ce customerdao public class customerd...
Spring自動裝配
通常情況下,配置bean的時候,一些屬性依賴需要我們自己去裝配,但是如果這是乙個比較大型的工程,裡面定義了成百上千個bean,那全都靠我們手工去裝配,你一定打心底厭煩,幸運的是spring為我們提供了自動裝配的方式 只要遵循一定的規則,spring就會自動幫你裝配依賴,而不需要你手工去裝配 自動裝配...
Spring 自動裝配
bean的自動裝配 autowiring 四種型別 1.no 不做任何操作 2.byname 根據屬性名自動裝配。此選項將檢查容器並根據名字查詢與屬性完全一致的bean,並將其與屬性自動裝配 3.bytype 如果容器中存在乙個與指定屬性型別相同的bean,那麼將與該屬性自動裝配 如果存在多個該型別...