Spring学习----自动装配@Resource、@Autowired、@Qualifier

直接看下面的代码即可明白:

applicationContext.xml里面添加个bean:

 <!--注解的注入  -->
 <bean id="student3" class="day01.di.annotations.annotation_di.Student"></bean>
 <bean id="person3" class="day01.di.annotations.annotation_di.Person" ></bean>
 <!-- 启动依赖注入的注解解析器 -->
 <context:annotation-config></context:annotation-config>
  

java文件里面装配代码:

public class Person {
    /*
     * @Resource(name="student3") 
     * private Student student;
     */
    /*
     * @Resource 
     * private Student student3;
     */
    /*
     * @Resource 
     * private Student studen;
     */
    /**
     * 注意:在使用@Resource时, 1、优先根据@Resource后面的name属性的值去applicationContext.xml文件里面去找
     * id=该值的bean进行装配,这时候如果找不到,就会报错 2、如果name省略不写,会根据注解下面的属性名去寻找然后注入
     * 3、如果寻找不到,就会根据我们想要装配的类型去寻找bean
     * 总结:先byname,然后bytype,byType是很危险的,如果同类型的多个bean存在于applicationContext.xml文件,那就会报错
     */

    /*
     * @Autowired //按照类型匹配 
     * private Student studen;
     */

    @Autowired
    @Qualifier("student3") // 先按照类型匹配然后按照id匹配(@Qualifier要依赖在@Autowired下面才有用)
    private Student studen;
    // 注解只能用于引用数据类型

    public void say() {
        this.studen.say();
    }

}

猜你喜欢

转载自www.cnblogs.com/luzhanshi/p/10688263.html