java - 添加 `@SpringBootTest` 注释会触发 IntelliJ 误报
问题描述
所以如果你有一个测试类
class FooControllerIT{
@Autowired FooController controller;
}
并且您向该类添加@SpringBootTest
注释,IntelliJ 声称
无法自动接线。找不到 'FooController' 类型的 bean。
这是一个谎言,因为测试运行并通过就好了。
如果我用注释替换@SpringBootTest
注释@Component
,“错误”就会消失(当我再次替换@SpringBootTest
注释时会重新出现)。
是什么导致了这种行为?
(我在终极 2019.1,使用 Spring Boot 2.1.8-RELEASE)
解决方案
无法找到您的 Controller 的可能方式是它与您的主应用程序类 annotated 不在同一个(或更高)包中@SpringBootApplication
。如果不想移动Controller,可以新建一个配置类,注释为@ComponentScan
@Configuration
@ComponentScan(basePackages = "com.your.controller.package")
public class FooConfig {
}
即使您可以手动将此配置添加到您的测试弹簧上下文中:@SpringBootTest(classes = FooConfig.class)
推荐阅读
- datetime - 使用 dmore/behat-chrome-extension 设置日期时间字段的值
- python - 为什么print老是报错不支持str和int连接?print的用法是什么?
- r - 当表格出现在 pdf 文件的末尾时,apa_table() 返回空白结果
- javascript - 使用 jQuery 更新图像剪辑
- javascript - 反应 - 安装时不工作 npm
- azure - 本地 FTP 服务器文件夹迁移到 Azure 数据湖
- android - 改造-Android 11
- c++ - 如果一个类包含另一个类的对象,并且所有的类都是通过构造函数初始化的,那么初始化是如何工作的呢?
- vue.js - 使用 Vuetify 进行阴影控制
- amazon-web-services - AWS Glue - 数据未插入到所需的目的地