直接看下面的代码即可明白:
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(); } }