簡體   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