Person.java
Student.java
配置applicationContext.xml
1.导入命名空间
在applicationContext.xml的头文件中加入context的配置
2.导入依赖注入的注解解释器
3.导入Java类
不需要再手动给类的属性赋值。因为@Resource已经帮我们做了。
原理:
- 启动spring容器,并加载配置文件,为纳入spring管理的bean创建对象。
- 当解析到<context:annotation-config></context:annotation-config> 的时候会启动依赖注入的注解解析器。[这只是普通的类的注解解析器,下面还会讲到更强大的扫描注解解析器]
- 在纳入spring管理的bean的范围内查找bean的属性上有@Resource注解的属性
- 如果@Resource注解的name属性的值为””,则会把注解的属性名称和spring容器中bean的id进行匹配,如果匹配成功,则把id对应的类的对象赋值给该属性,如果匹配不成功,则按照类型进行再次匹配,如果再次匹配也不成功,则报错。
- 如果@Resource注解的name属性值不为””,则会把name属性的值与spring容器中bean的id进行匹配,如果匹配成功则赋值,如果匹配不成功则直接报错。
@Resource是javax包下面的,spring自己开发了另外两个
而这两个合在一起就相当于@Resource的功能。
支持的注解:
@Resource @Autowired @Qualifier @PostConstruct @PreDestroy