Gio*_*nJh 3 java spring autowired
我真的想对@autowired在Spring中如何实现有一个基本的了解.
反思应该以某种方式暗示其实施,但我无法弄清楚如何.
你能帮我吗 ?
通过实现@Autowired来执行自动装配BeanPostProcessor,具体而言org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.
这将BeanPostProcessor处理每个bean,将扫描其类(和超类)以获取任何@Autowired注释,并且,根据注释(构造函数,字段或方法),它将采取适当的操作.
对于构造函数
任何给定bean类中只有一个构造函数(最大值)可以携带此注释,并将'required'参数设置为true,表示构造函数在用作Spring bean时要自动装配.如果多个非必需构造函数带有注释,则它们将被视为自动装配的候选者.将选择具有最大数量的依赖项的构造函数,这些构造函数可以通过匹配Spring容器中的bean来满足.如果不能满足任何候选者,则将使用默认构造函数(如果存在).带注释的构造函数不必是公共的.
对于领域
在调用任何配置方法之前,在构造bean之后立即注入字段.这样的配置字段不必是公共的.
对于方法
配置方法可以有任意名称和任意数量的参数; 每个参数都将使用Spring容器中的匹配bean进行自动装配.Bean属性设置器方法实际上只是这种通用配置方法的特例.配置方法不必是公开的.
所有这些都是通过反思来完成的.
进一步阅读:
| 归档时间: |
|
| 查看次数: |
942 次 |
| 最近记录: |