intellij 错误地说没有为自动装配的存储库找到类型的 bean

新手上路,请多包涵

我创建了一个简单的单元测试,但 IntelliJ 错误地将其突出显示为红色。将其标记为错误

没有豆子?

在此处输入图像描述

正如您在下面看到的,它通过了测试?所以它必须是Autowired?

在此处输入图像描述

原文由 Robbo_UK 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 924
2 个回答

使用他们的 @SpringBootApplication 注释创建 Spring Boot 应用程序时,我遇到了同样的问题。此注释代表 @Configuration@EnableAutoConfiguration@ComponentScan 根据 弹簧参考

正如预期的那样,新注释工作正常,我的应用程序运行顺利,但是 Intellij 一直抱怨未实现 @Autowire 依赖项。一旦我改回分别使用 @Configuration@EnableAutoConfiguration@ComponentScan ,错误就消失了。似乎 Intellij 14.0.3 (很可能也是早期版本)尚未配置为识别 @SpringBootApplication 注释。

现在,如果这些错误对您造成如此大的困扰,那么请回到这三个单独的注释。否则,忽略 Intellij …您的依赖解析已正确配置,因为您的测试通过了。

总记得…

人永远大于机器。

原文由 Abimbola Esuruoso 发布,翻译遵循 CC BY-SA 3.0 许可协议

在存储库类上添加 Spring 注释 @Repository

我知道它应该在没有这个注释的情况下工作。但是如果你添加这个,IntelliJ 将不会显示错误。

 @Repository
public interface YourRepository ...
...

如果您将 Spring Data 与扩展 Repository 类一起使用,它将是冲突包。那么你必须直接指明包裹。

 import org.springframework.data.repository.Repository;
...

@org.springframework.stereotype.Repository
public interface YourRepository extends Repository<YourClass, Long> {
    ...
}

接下来,您可以毫无错误地自动装配您的存储库。

 @Autowired
YourRepository yourRepository;

这可能不是一个好的解决方案(我猜你正在尝试注册存储库两次)。但为我工作,不要显示错误。

也许在新版本的 IntelliJ 中可以修复: https ://youtrack.jetbrains.com/issue/IDEA-137023

原文由 mkczyk 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题