@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