根據問題現狀,創建好對應的代碼格式,如下圖:
service包下的接口StudentService和它的兩個實現類BoyStudentImpl和GirlStudentImpl分別如下圖所示:
在controller下要引用這個service,一般是如下圖方式去引用:
@Autowired StudentService service;
但是因爲目前一個接口不止一個實現類,所以之前的引用方式在這種情況下不適合,下面展示在這種情況下一個controller中引用多個bean:
第一種,service對象名要和beanName相同:
如果不相同的話會有如下的提示:
第二種,@Autowired + @Qualifier配合使用,如下圖:
同時發現這種方式會覆蓋第一種方式,service選的bean以Qualifier中的value爲準。
第三種,使用@Resource註解,如下圖
與第二種方式相比,效果一樣。
目前根據使用情況,整理了3種方式,希望對大家有幫助