亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring將一個bean注入另一個bean

Spring將一個bean注入另一個bean

慕雪6442864 2023-06-04 11:11:43
我正在嘗試將一個 bean 注入到另一個使用它的 bean 中。我怎樣才能做到這一點?public class MySpringConfig{@Beanpublic MyObject getMyObject() {  //.....  return MyObjectInstance;}@Beanpublic SomeObject getSomeObject(MyObject myObject) {  //.....  return SomeObjectInstance; }    }
查看完整描述

3 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

我認為你可以用這種方式做到這一點,這在我的項目中有效。


@Configuration

public class AppConfig {


 @Bean

 public Bean1 foo(@Qualifier("bean2") Bean2 bean2) {

  return new Bean1(bean2);

 }


}


查看完整回答
反對 回復 2023-06-04
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

我認為這可能有效!


 @Configuration

 public class AppConfig {


  @Bean

  public Bean2 bean2() {

      return new Bean2();

  }


  @Bean

  @DependsOn({"bean2"})

  public Bean1 foo(@Autowired Bean2 bean2) {

     return new Bean1(bean2); // or your can write new Bean1(bean2());

  }

}



查看完整回答
反對 回復 2023-06-04
?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

@Bean參數在和中的工作方式并不完全相同@Component。

對于用 注釋的類@Component,自動裝配構造函數需要指定它們,但在聲明中@Bean您不需要提供參數來指定MyObject要使用的依賴項(雖然它會起作用),如果當前類可以訪問的話,這是你的情況。因此,您想通過調用@Bean 定義

來直接注入 bean 。 例如向它傳遞一個構造函數 arg :getMyObject()


@Bean

public SomeObject getSomeObject() {


  //....

  // you injected MyObject in the current bean to create

  SomeObject object = new SomeObject(getMyObject());

  //...

  return SomeObjectInstance;     

}

并且不要忘記為類添加注釋@Configuration以使其被 Spring 考慮。


查看完整回答
反對 回復 2023-06-04
  • 3 回答
  • 0 關注
  • 310 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號