@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. @Autowired在Spring MVC @Controller不能在私人領域工作
- 4. 私人領域如何在派生類中工作?
- 5. hibernate如何訪問私人領域?
- 6. 如何模擬私人領域?
- 7. Eclipse朱諾 - 爲什麼沒有警告未使用註釋的私人領域?
- 8. 應用服務器如何注入私人領域?
- 9. 私人領域不編譯
- 10. Junit的私人領域
- 11. INotifyPropertyChanged的帶私人領域
- 12. 模式與私人領域
- 13. 私人領域是超
- 14. 嘲笑私人領域
- 15. 何時不使用私人領域?
- 16. @Autowired領域引起org.springframework.beans.factory.BeanCreationException
- 17. Spring MVC的驗證與註釋嵌套領域不工作
- 18. 瞭解@autowired註釋
- 19. Vb.Net作用域的問題 - 私人領域
- 20. Android Dagger依賴注入在私人領域失敗
- 21. 私人領域的垃圾收集
- 22. 枚舉值()長度VS私人領域
- 23. 關於改變私人領域
- 24. 私人財產領域的StackOverflow例外
- 25. 結構 - 進入私人領域
- 26. java有什麼私人領域?
- 27. 摘要Scala的特質私人領域
- 28. 私人領域與公共accessor在c + +
- 29. 使用ProGuard混淆私人領域
- 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