接口編程解決
- 使用具體的對象而不是接口(不推薦)
- 使用首選Bean(
@primary
)
注意同時只能有一個@primary
- 使用@Qualifier()註解
- 接口實現類(類聲明的地方)上使用
@Qualifier(id)
- 接口聲明的地方(裝配這個對象時)使用同樣的
@Qualifier(id)
,(id要相同)
- 接口實現類(類聲明的地方)上使用
- 在接口實現類(類聲明的地方)上使用
@Component(id)
接着在接口聲明(裝配這個對象時)的地方使用@Qualifier(id)
,(id要相同) - 不使用id,直接是
@Component
,這種寫法較爲方便,它默認id是首字母小寫的類名(比如Student的默認id是student)
接着在接口聲明的地方使用@Qualifier(student)
Java標準解決
類似上面的4,5,這裏在接口聲明的地方(裝配這個對象時),使用一個Java自帶的解決方案(而不是spring):@Resource(name="student")
(javax.annotation.Resource
)