[英]Autowire in spring
我试图在spring框架中检查一些代码,其中已编码自动装配功能。
让我给你举个例子。
@Component
public lass Service{
@Autowired
private DaoLayer daoLayer;
}
我的问题是:当使用Autowired标记各个字段时,spring如何注入DaoLayer或任何实例。
任何人都可以指出我在哪里可以找到此信息,或者向我解释有关此过程的更多信息。
我记得在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.