Autowired和Resource的区别
- Autowired 由spring提供,Resource 由JavaEE提供。
- Autowired 按类型装配依赖对象,Resource 默认是按 name 进行装配,如果没有指定 name 属性,就按类型进行装配。(这里的 name 指的是变量名)
- 一般用 Resource 注解多一点,因为它不是由 spring 提供的,可以减少项目与spring 的耦合。
Autowired的实现原理
- Autowired 的意思是自动装配,它将Spring容器中的bean自动的和我们 需要这个bean的类 组装在一起,它通过反射将成员变量赋值为期望的类实例。
- 当 Spring 容器启动时,AutowiredAnnotationBeanPostProcessor 将扫描 Spring 容器中所有的 Bean,当发现 Bean 中拥有@Autowired 注解时就找到和其匹配(默认按类型匹配)的 Bean 并注入到对应的地方。