《Spring》自動裝配同一接口歧義解決方案

接口編程解決

  1. 使用具體的對象而不是接口(不推薦)
  2. 使用首選Bean(@primary
    注意同時只能有一個@primary
  3. 使用@Qualifier()註解
    1. 接口實現類(類聲明的地方)上使用@Qualifier(id)
    2. 接口聲明的地方(裝配這個對象時)使用同樣的@Qualifier(id),(id要相同)
  4. 在接口實現類(類聲明的地方)上使用@Component(id)
    接着在接口聲明(裝配這個對象時)的地方使用@Qualifier(id),(id要相同)
  5. 不使用id,直接是@Component,這種寫法較爲方便,它默認id是首字母小寫的類名(比如Student的默認id是student)
    接着在接口聲明的地方使用@Qualifier(student)

Java標準解決

類似上面的4,5,這裏在接口聲明的地方(裝配這個對象時),使用一個Java自帶的解決方案(而不是spring):@Resource(name="student")javax.annotation.Resource

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章