3 回答

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

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
我認(rèn)為這可能有效!
@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貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
@Bean參數(shù)在和中的工作方式并不完全相同@Component。
對(duì)于用 注釋的類@Component,自動(dòng)裝配構(gòu)造函數(shù)需要指定它們,但在聲明中@Bean您不需要提供參數(shù)來指定MyObject要使用的依賴項(xiàng)(雖然它會(huì)起作用),如果當(dāng)前類可以訪問的話,這是你的情況。因此,您想通過調(diào)用@Bean 定義
來直接注入 bean 。 例如向它傳遞一個(gè)構(gòu)造函數(shù) arg :getMyObject()
@Bean
public SomeObject getSomeObject() {
//....
// you injected MyObject in the current bean to create
SomeObject object = new SomeObject(getMyObject());
//...
return SomeObjectInstance;
}
并且不要忘記為類添加注釋@Configuration以使其被 Spring 考慮。
添加回答
舉報(bào)