@autowired注释如何用于私人领域?

这个问题在这里已经有了答案:

  • 什么是反思,为什么它有用? 20个答案
  • Spring @Autowired如何工作4个答案

  • 它适用于反思。 在这里您可以找到如何设置公共字段的示例。 但设置私人领域并没有太大区别


    @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注入:客户端公开了注入器用于注入依赖关系的setter方法。

    接口注入:依赖项提供了一个注入方法,它将依赖注入到传递给它的任何客户端中。 客户端必须实现一个暴露接受依赖关系的setter方法的接口。

    链接地址: http://www.djcxy.com/p/47611.html

    上一篇: How does @autowired annotation works for a private field?

    下一篇: What is the use of reflection in Java/C# etc