sping之自动注入(autowire)和@Autowire的区别
spring 之自动注入(autowire)
当我们使用xml来进行元数据配置时,你可以通过在 元素中,通过设置autowire属性来指定具体采用哪种自动注入模型(autowire mode)。Spring提供了四种自动注入模型,如下图:
当我们指定了具体的自动注入模型后,Spring就采用相应的策略来对使用了自动注入模型的bean进行属性注入。将bean中的依赖项尽可能多的注入进来。该过程自动完成,无需手动指定注入bean的某个属性。其服务的对象是整个bean的所有属性。其使用的注入技术是setter方法或是构造方法
注解@Autowired
@Autowired并不等于自动注入(autowire)。@Autowired仅仅是先通过类型去找,找不到再通过名字去找,来对某个属性进行注入。其服务的对象是bean中带有@Autowired注解的某个属性,这点和自动注入有很大的区别。@Autowired注解是有Spring提供的,该注解由AutowiredAnnotationBeanPostProcessor类来进行解析和处理。和@Autowired注解很相似的一个注解是@Resource注解,其查找依赖的策略是先通过名字查找,再通过类型进行查找,该注解是由jdk提供的,其有CommonAnnotationBeanPostProcessor类来进行解析和处理。其使用的注入技术是反射。