天天看點

@Autowired一個有多個實作類的接口

@Autowired一個接口的時候不少人都會有疑惑,如果

public class B implements A;

public class C implements A;

@Autowired

private A a;

此時a調用方法是調用B的方法還是C的方法呢?實測如此操作會導緻啟動報錯了org.springframework.beans.factory.BeanCreationException,而原因是注入的時候發現有2個比對的bean,(這個注解的首先是通過byType的方式注入Bean)

如果有此場景怎麼辦呢,如下:

@Autowired
				private  A b;
				
				@Autowired
				private  A c;
				
				@Autowired
				@Qualifier(value = "c")
				private  A a;

           

@Qualifier的意思是合格者,通過這個标示,表明了哪個實作類才是我們所需要的

參考:https://blog.csdn.net/qq_37752382/article/details/101321238