2015-08-25 41 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创建豆而不是返回对象名。

相关问题