有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在java中使用自动连线对象

我想了解SPringBoot中的自动布线是如何工作的。 所以,我已经创建了一个singketon类B(例如),我正在处理C类中B类的实例,现在想在a类中使用它。一切正常。但是,现在我被告知使用自动布线,因为我的应用程序是springBoot。所以我跟着

@Component
Class B{
 int track = 0;
}

Class C{
  @Autowired
  B b

  public void doSomething(){
  b.track = 1;
  }
}

Class A{
 // I want to use the object b in here for further processing, how can I do it ?
}

我做得对吗?或者我怎样才能做到这一点


共 (1) 个答案

  1. # 1 楼答案

    对于启动程序,您应该考虑在构造函数上使用@ AutoWORD,因为它让您(避免空指针异常)[1]如果某些东西没有被正确地连接。

    如果要将B自动连接到A,请使用与C相同的方法;只是要确保避免循环依赖

    @Component
    Class B{
     int track = 0;
    }
    
    Class C{
      private final B b;
    
      @Autowired
      public C(B b){
       this.b = b;
      }
    
      public void doSomething(){
       b.track = 1;
      }
    }
    
    Class A{
     private final B b;
    
     @Autowired
     public A(B b){
      this.b = b;
     }
    
    }
    

    [1]:http://evan.bottch.com/2009/02/03/setter-injection-sucks/<;-这是一首老歌,但却是一首好歌;另见http://olivergierke.de/2013/11/why-field-injection-is-evil/