如何在Spring中实现@Autowired

时间:2015-07-03 16:29:56

标签: java spring autowired

我真的想对@autowired的基本理解 在春天实施 反思应该以某种方式暗示其实施,但我无法弄清楚如何 你能帮我吗 ?

1 个答案:

答案 0 :(得分:8)

通过@Autowired自动装配是由BeanPostProcessor实施执行的,具体为org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor

这个BeanPostProcessor处理每个bean,将扫描其类(和超类)以查找任何@Autowired注释,并且,根据注释(构造函数,字段或方法),它将采用适当的行动。

对于构造函数

  

任何给定bean类只有一个构造函数(最大值)可以携带它   使用' required'进行注释参数设置为true,表示   构造函数在用作Spring bean时自动装配。如果多个   非必需的构造函数带有注释,它们将是   被视为自动装配的候选人。构造函数与   匹配可以满足最大数量的依赖关系   将选择Spring容器中的bean。如果没有   候选人可以满意,然后是默认构造函数(如果存在)   将会被使用。带注释的构造函数不必是公共的。

对于字段

  

在构建bean之后立即注入字段   调用config方法。这样的配置字段不一定是   公共

方法

  

配置方法可以有任意名称和任意数量的参数;   每个参数都将使用匹配的bean自动装配   弹簧容器。 Bean属性setter方法实际上只是一个   这种通用配置方法的特例。配置方法没有   必须公开。

所有这些都是通过反思完成的。

进一步阅读: