2015-08-25 78 views
0

我用了名,創建由配置豆彈簧引導創建了名稱豆會導致「NoSuchBeanDefinitionException,沒有類型的排位豆[]發現依賴」

@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; 

然而,這測試可能效果不錯

它還沒有名字和自動裝配Autowired創建豆用了預選賽

請告訴我爲什麼....感謝

回答

0

對不起。

我已經找到了結果:

重寫bean定義爲豆 'createClient':更換...

所以彈簧引導將由functionName創建豆而不是返回對象名。

相關問題