使用名称创建bean时出错:表达不满意的依赖项

时间:2017-11-20 20:28:59

标签: java spring hibernate jpa spring-data

我在尝试启动应用时遇到此错误。我看过许多类似的问题和主题,但似乎没有人帮助我。

  

创建名为'databaseManager'的bean时出错:不满意的依赖项       通过字段'articleRepo'表达;嵌套异常是       org.springframework.beans.factory.NoSuchBeanDefinitionException:没有       合格的bean类型       'pl.dzejkobdevelopment.database.repositories.ArticleRepo'可用:       预计至少有1个豆有资格成为autowire候选人。依赖       注释:       {@ org.springframework.beans.factory.annotation.Autowired(所需=真)}

@Repository
public interface ArticleRepo extends CrudRepository<Article, Long> {
}

和...

@Service
public class DatabaseManager {

    @Autowired
    private ArticleRepo articleRepo;
    @Autowired
    private CommentRepo commentRepo;
    @Autowired
    private TagRepo tagRepo;
    @Autowired
    private UserRepo userRepo;

    public void addArticle(Article article){
        article.getTags().forEach(tag ->addTag(tag));
        articleRepo.save(article);
    }

    public List<Comment> findComments(User user){
        return commentRepo.findByCommentAuthor(user);
    }

    private void addTag(Tag tag){
        tagRepo.save(tag);
    }


}

和...

@Configuration
//@ComponentScan(basePackages="pl.dzejkobdevelopment.database.repositories")
public class AppConfig {
    @Bean
    public WebsiteProporties websiteProporties(){
        return new WebsiteProporties();
    }
    @Bean
    public StorageProperties storageProporties(){ return new StorageProperties();}
    @Bean
    public DatabaseManager databaseManager(){ return new DatabaseManager();}

    }
}

取消注释ComponentScan没有用。

修改 更改ComponentScan的{​​{1}}会出现此错误:

  

创建名为'databaseManager'的bean时出错:通过字段'articleRepo'表示不满意的依赖关系;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'articleRepo'的bean时出错:设置bean时无法创建[org.springframework.orm.jpa.SharedEntityManagerCreator]类型的内部bean'(内部bean)#14a1d6d' property'entalManager';嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'(内部bean)#14a1d6d'的bean时出错:在设置构造函数参数时无法解析对bean'entalManagerFactory'的引用;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有名为'entityManagerFactory'的bean可用

1 个答案:

答案 0 :(得分:0)

尝试使用

@EnableJpaRepositories("pl.dzejkobdevelopment.database.repositories")

而不是ComponentScan。