[英]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.