3 回答

TA貢獻1875條經驗 獲得超3個贊
我認為你可以用這種方式做到這一點,這在我的項目中有效。
@Configuration
public class AppConfig {
@Bean
public Bean1 foo(@Qualifier("bean2") Bean2 bean2) {
return new Bean1(bean2);
}
}

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());
}
}

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 考慮。
添加回答
舉報