我试图检查Spring框架中的一些代码,其中编码了自动装配的功能。
让我举个例子。
@Component
public lass Service{
@Autowired
private DaoLayer daoLayer;
}
我的问题是:当使用自动装配标记相应字段时,春天如何注入DaoLayer或任何实例。
任何人都可以指出我可以在哪里找到这些信息,或者向我解释这个过程的更多信息。
我记得在sring2.5中,getter和setter需要存在但在spring3.2中不再存在,所以现在spring是由它自己创建的?或者不再使用了?
感谢。
答案 0 :(得分:1)
使用反射制作吗? ,如果使用反射:反射 可以访问私人领域吗?
是的,Spring在任何地方使用反射。通过反射,您可以执行许多操作,例如access private fields, methods, constructors, and classes.
使用新创建的代理进行此操作?并在其上注入参考?, 如果发生这种情况,当没有吸气剂和固定剂时会发生什么?
Spring直接在字段上解析@Autowired
。在创建bean时,它只需要getter和setter(使用Java bean常规名称)来解析<property>
声明的<bean>
元素。请注意,Spring再次使用反射来调用这些getter / setter。
使用其他技术和哪一种?
不需要任何其他内容。
如果您对执行此操作的实际课程感兴趣,请查看AutowiredAnnotationBeanPostProcessor
。 Spring documentation也解释了其中一些内容(查看IoC章节)。