繁体   English   中英

春季自动接线

[英]Autowire in spring

我试图在spring框架中检查一些代码,其中已编码自动装配功能。

让我给你举个例子。

@Component
public lass Service{
   @Autowired
   private DaoLayer daoLayer;
}

我的问题是:当使用Autowired标记各个字段时,spring如何注入DaoLayer或任何实例。

  1. 使用反射进行此操作? ,如果使用了反射:反射可以访问私有字段吗?
  2. 使用新创建的代理进行此操作? 并在上面注入引用?如果发生这种情况,当不存在getter和setter时会发生什么?
  3. 使用其他技术,哪一个?

任何人都可以指出我在哪里可以找到此信息,或者向我解释有关此过程的更多信息。

我记得在sring2.5中需要存在getter和setter,但在spring3.2中不再存在,所以spring现在是由它们自己创建的吗? 还是不再使用?

谢谢。

使用反射进行此操作? ,如果使用了反射:反射可以访问私有字段吗?

是的,Spring 到处都有反射。 通过反射,您可以做很多事情,例如访问私有字段,方法,构造函数和类。

使用新创建的代理进行此操作? 并在上面注入引用?如果发生这种情况,当不存在getter和setter时会发生什么?

Spring直接在字段上解析@Autowired 创建bean时,只需要使用getter和setter(具有Java bean的常规名称)即可解析<bean>声明的<property>元素。 请注意,Spring再次使用反射来调用这些getter / setter。

使用其他技术,哪一个?

不需要其他了

如果您对执行此操作的实际类感兴趣,请查看AutowiredAnnotationBeanPostProcessor Spring文档也对此进行了解释(请参阅IoC章)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM