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

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

春天不創造豆

春天不創造豆

慕標琳琳 2021-10-27 10:06:17
我有兩個實現相同接口的 bean。兩者都是在 Java 配置中創建的,如下所示:@Bean@Qualifier("kafkaEventSender")public IKafkaEventSender<KafkaData> kafkaEventSender(@Qualifier("EventBus") KafkaTemplate<String, Object> kafkaTemplate){    return new KafkaEventSender<>(kafkaTemplate, false);}@Bean@Qualifier("kafkaEventSenderAudited")public IKafkaEventSender<KafkaData> kafkaEventSenderAudited(@Qualifier("EventBus") KafkaTemplate<String, Object> kafkaTemplate){    return new KafkaEventSenderAudited<>(kafkaTemplate, false);}問題是 spring 不會只創建第二個 bean。知道為什么嗎?
查看完整描述

3 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

我有兩個實現相同接口的 bean。兩者都是在 Java 配置中創建的,如下所示:


@Bean

@Qualifier("kafkaEventSender")

public IKafkaEventSender<KafkaData> kafkaEventSender(@Qualifier("EventBus") KafkaTemplate<String, Object> kafkaTemplate){

    return new KafkaEventSender<>(kafkaTemplate, false);

}


@Bean

@Qualifier("kafkaEventSenderAudited")

public IKafkaEventSender<KafkaData> kafkaEventSenderAudited(@Qualifier("EventBus") KafkaTemplate<String, Object> kafkaTemplate){

    return new KafkaEventSenderAudited<>(kafkaTemplate, false);

}

問題是 spring 不會只創建第二個 bean。知道為什么嗎?


查看完整回答
反對 回復 2021-10-27
?
慕妹3146593

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

注解用于在 spring 容器中多個相同類型的可用 bean 中選擇一個 bean。


當您使用@Bean 注解注解一個方法時,默認情況下,它會創建一個名稱為相同方法名稱的 bean。因此,例如:


    @Bean

    public BeanA itsBeanA() {

        return new BeanA();

    }


    @Bean(name = "specialBeanA")

    public BeanA itsAgainBeanA() {

        return new BeanA("specialConstructorParam");

    }


    @Bean

    public BeanB beanB(@Autowired @Qualifier("specialBeanA") BeanA beanA) {

        return new BeanB(beanA);

    }

第一個方法將創建一個名為“itsBeanA”的 BeanA 實例。其次,將創建一個名為“specialBeanA”的實例,因為我們在此處提供了 name 屬性??赡苡幸粋€場景,你需要有多個相同類型的 bean(比如這里的 BeanA)。它將為容器使用所有相同類型的 bean 創建歧義,我們使用我們想要的 bean 名稱指定 @Qualifier。我希望這有幫助。


查看完整回答
反對 回復 2021-10-27
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

好的,問題出在方法名稱上,更改后,bean 已正確創建。在其他一些庫配置類中有一個同名的方法。猜測這是問題所在。


查看完整回答
反對 回復 2021-10-27
  • 3 回答
  • 0 關注
  • 205 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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