首页 > 解决方案 > Spring Boot 项目抛出“至少 1 个 bean 异常”

问题描述

我无法运行我的项目。反复获取 NoBeanFoundException。例外情况是:没有可用的“com.example.Model.Movie”类型的合格 bean:预计至少有 1 个有资格作为自动装配候选者的 bean。依赖注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)} repo 的链接是https://github.com/RaviShekhawat/BMSBackend

标签: javaspringspring-bootspring-data-jpa

解决方案


您的 Movie 类不是 spring bean,因此您将无法将其 @Autowire 到 MovieController。

由于您的 Movie 是 @Entity,因此将其作为 spring bean 是没有意义的。Spring bean 通常是没有状态的单例,并且在应用程序的生命周期中一直存在。你的电影确实有状态,我认为应该只为个别请求而徘徊。

我不确定您要Movie movie对 MovieController 中的字段做什么。但是你真的不想把它当作一个字段。控制器中的大多数方法都按照我的预期工作,因为它们从数据库中检索数据并将其返回给调用者,或者从调用者获取数据并将其传递给数据库。

第一种方法...

    @Autowired
    Movie movie;

    @RequestMapping(value="/GetReactions", method= RequestMethod.GET)
    public Integer getReactions() {

       return movie.getNo_of_reviews();

    }

看起来您正试图在调用之间在控制器中保存一些状态。不要这样做。


推荐阅读