當使用@Autowired註解的屬性類型爲接口(接觸耦合),這個接口有兩個以上的實現類時,爲了區分注入的是哪個實現類,使用@Qualifier指定ide
CarIn接口:測試
public interface CarIn { public String Car(); }
實現類Car1:code
public class Car1 implements CarIn { @Override public String Car() { return "This is Car1"; } }
實現類Car2:xml
public class Car2 implements CarIn { @Override public String Car() { return "This is Car2"; } }
Boss類:接口
public class Boss { @Resource(name="Car2") private CarIn carIn; @Override public String toString() { return carIn.Car(); } }
ApplicationContext.xml:get
<bean id="Car1" class="com.Lazarus.Car1"/> <bean id="Car2" class="com.Lazarus.Car2"/> <bean id="Boss" class="com.Lazarus.Boss"/>
測試類:io
public class test { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext("ApplicationContext.xml"); Boss boss=(Boss)ctx.getBean("Boss"); System.out.println(boss); } }