How does @autowired annotation works for a private field?
本问题已经有最佳答案,请猛点这里访问。
对于没有getter setter的私有字段,
它与反射一起工作。在这里,您可以找到如何设置公共字段的示例。但是设置私有字段并没有什么不同
Spring创建被称为@component的bean。这里将首先创建bean a,因为b依赖于a,所以将完成a到b的注入。不需要任何二传手。只需要@component。Spring使用cglib通过反射创建bean。
依赖注入的三种类型
对象可以通过至少三种方式接收对外部模块的引用:
构造函数注入:依赖项是通过类构造函数提供的。
setter注入:客户端公开了一个setter方法,该方法是注入器用来注入依赖项的。
接口注入:依赖项提供了一个注入器方法,将依赖项注入传递给它的任何客户机。客户端必须实现一个公开接受依赖项的setter方法的接口。