《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

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