关于Spring中@Autowired和@Qualifier注释的使用

当使用@Autowired注解的属性类型为接口(接触耦合),这个接口有两个以上的实现类时,为了区分注入的是哪一个实现类,使用@Qualifier指定

CarIn接口:

public interface CarIn {
    public String Car();
}

实现类Car1:

public class Car1 implements CarIn {

    @Override
    public String Car() {
        return "This is Car1";
    }
}

实现类Car2:

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:


 <bean id="Car1" class="com.Lazarus.Car1"/>

    <bean id="Car2" class="com.Lazarus.Car2"/>

    <bean id="Boss" class="com.Lazarus.Boss"/>

测试类:

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);
    }
}

posted on 2017-07-05 23:18  theLazarus  阅读(315)  评论(0编辑  收藏  举报