[英]NoSuchBeanDefinitionException: No qualifying bean of type JpaVendorAdapter found for dependency
[英]Spring-Boot create bean with out name will cause “NoSuchBeanDefinitionException, No qualifying bean of type[]found for dependency ”
我通過配置用名字創建bean
@Configuration
@ConfigurationProperties(prefix = "mysql")
public class DbConfiguration extends BaseDbConfiguration {
@Bean//(name = "fix")
@Override
public DbClient createClient() {
return super.createClient();
}
}
用法:
@Autowired
private DbClient dbClient;
當我運行應用程序時無法啟動
並拋出NoSuchBeanDefinitionException:
找不到依賴項的類型為[DbClient]的合格Bean:至少應有1個符合此依賴項的自動裝配候選條件的bean。 依賴項注釋:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}
但是我通過添加名稱來解決它,為什么?
@Bean(name = "fix")
我還添加了這樣的測試:
public class TestCreate {
@NotNull
private int test;
public Test createTest() {
return new Test(this.test);
}
}
它的配置是這樣的:
@Configuration
@ConfigurationProperties(prefix = "test")
public class TestConfiguration extends TestCreate {
@Override
@Bean
public Test createTest() {
return super.createTest();
}
}
並像這樣自動布線:
@Autowired
private Test test;
但是,此測試可能效果很好
它還會創建沒有名稱的Bean,並在沒有限定符的情況下自動裝配
請告訴我為什么...。謝謝
抱歉。
我發現了結果:
覆蓋bean'createClient'的bean定義:替換...
因此,Spring-Boot將通過FunctionName創建Bean,而不是返回ObjectName。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.