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

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

啟動SpringBoot應用時No Qualifying Bean

啟動SpringBoot應用時No Qualifying Bean

精慕HU 2023-05-24 14:55:48
我正在向現有的 SpringBoot 應用程序添加一些新組件,并且在啟動應用程序時遇到 bean 定義異常。所有 bean/service 和其他組件都是通過注解配置的,而不是通過 spring xml 配置(我更熟悉基于 xml 的 spring 配置)。不幸的是,為了解釋我的問題,我不得不在下面進行一些混淆,而不是提供真實的代碼。在應用程序中,我添加了一個新的工廠組件,將其命名為 FooSheetFactory:package some.package;  @Componentpublic class FooSheetFactory {private final List<FooSheet> fooSheetList;@autowiredpublic FooSheetFactory(List<FooSheet> fooSheetList) {  this. fooSheetList = fooSheetList;}..(other stuff).}此類使用名為 FooSheet 的組件:package some.package;@Componentpublic interface FooSheet {public Foo getFoo(int param1, String param2);}工廠在應用程序的其他地方以如下方式實例化:..@AutowireFooSheetFactory fsf;..啟動 SpringBoot 應用程序時,出現以下錯誤:Error creating bean with name "FooSheetFactory " defined in file [ ~path/target/classes/..../FooSheetFactory.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.util.List<some.package.FooSheet>' available. Expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}從表面上看,這種實例化類似于我們在應用程序的其他地方使用 spring 的方式。類和接口都在同一個包中,并且該包中使用類似注釋的其他類在啟動時不會拋出錯誤。如果您能深入了解我的問題可能是什么,我將不勝感激。謝謝。
查看完整描述

1 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

不要把@Component注解放在接口上,放在實現類上。您的異常是抱怨它找不到您的接口的任何實現。你應該有:


@Component

class FooSheetImpl implements FooSheet {

  ...

}


查看完整回答
反對 回復 2023-05-24
  • 1 回答
  • 0 關注
  • 225 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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