@Autowired
註釋如何在沒有getter setter的私人領域中工作? 春天如何進入私人領域?@autowired註釋如何爲私人領域工作?
回答
它與reflection一起使用。 Here您可以找到如何設置公共字段的示例。但是,設置私人領域並沒有太大的一個difference
與私人領域的唯一區別在於,您需要先設置'setAccessible',然後才能讀取/寫入該字段。此外,這個方法可以拋出'SecurityException'。 http://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AccessibleObject.html#setAccessible-java.lang.reflect.AccessibleObject:A-boolean- – PeterK 2015-02-24 11:32:03
對,忘了SecurityException,謝謝。 – wastl 2015-02-24 11:32:42
@Component
public class A(){}
@Component
public class B(){
@Autowired
private A a;
}
Spring創建bean作爲@Component提到。這裏首先創建bean A,並且由於B依賴於A,那麼完成A到B的注入。不需要任何setter。只需@Component是必需的。 Spring使用CGLib來創建使用反射的bean。
三種類型的依賴注入的
至少有三個方面的目標能夠接收到外部模塊的引用:
構造函數注入:依賴關係通過類構造函數提供。
setter injection:客戶端公開了setter方法,注入器使用它來注入依賴關係。
接口注入:依賴項提供了一個注入方法,它將依賴注入到傳遞給它的任何客戶端。客戶端必須實現一個暴露接受依賴關係的setter方法的接口。
- 1. @autowired註釋如何工作?
- 2. Junit的:與私人領域@Autowired
- 3. 私人領域如何在派生類中工作?
- 4. hibernate如何訪問私人領域?
- 5. 如何模擬私人領域?
- 6. Eclipse朱諾 - 爲什麼沒有警告未使用註釋的私人領域?
- 7. 應用服務器如何注入私人領域?
- 8. 私人領域是超
- 9. 模式與私人領域
- 10. Junit的私人領域
- 11. 何時不使用私人領域?
- 12. 瞭解@autowired註釋
- 13. 使用ProGuard混淆私人領域
- 14. Reflection.Emit私人領域/財產訪問
- 15. 關於改變私人領域
- 16. 私人領域與公共accessor在c + +
- 17. 私人財產領域的StackOverflow例外
- 18. 私人領域的公共方法
- 19. Python的私人領域與getter方法
- 20. 訪問Java中的私人領域
- 21. RequiredAttribute標籤上的私人領域
- 22. 結構 - 進入私人領域
- 23. 摘要Scala的特質私人領域
- 24. GWT谷歌領域注射不工作
- 25. @Autowired註解不工作
- 26. 註釋處理器與Android庫(領域)
- 27. 如何將javadoc鏈接到私人領域?
- 28. Spring 3 @Autowired註釋問題
- 29. 無法自動裝配領域@Autowired註解
- 30. 模型失去私人領域的價值爲吸氣
http://stackoverflow.com/a/17531269/1297272 – Javier 2015-02-24 11:12:09
它是'@ automagic',因爲spring使用反射來實現依賴性連線機制。 – vikingsteve 2015-02-24 11:21:23
不同意這是重複的,因爲這些問題純粹是關於反思。這個問題是要求essentailly爲什麼春季框架在這個機制中使用反射 – vikingsteve 2015-02-24 11:23:24