因此,如果您有一个测试类
class FooControllerIT{
@Autowired FooController controller;
}
并且您向类添加了@SpringBootTest
注释,IntelliJ声称
无法自动连线。找不到"FooController"类型的bean。
这是一个谎言,因为测试运行和通过都很好。
如果我用@Component
注释替换@SpringBootTest
注释,那么"错误"就会消失(当我再次替换@SpringBootTest
注释时,"错误"会再次出现(。
是什么导致了这种行为?
(我在终极2019.1上,使用Spring Boot 2.1.8-RELEASE(
找不到Controller的可能原因是它与注释为@SpringBootApplication
的主应用程序类不在同一(或更高(包中。如果您不想移动控制器,您可以创建一个新的配置类,该类将被注释为@ComponentScan
@Configuration
@ComponentScan(basePackages = "com.your.controller.package")
public class FooConfig {
}
即便如此,您也可以手动将此配置添加到测试春季上下文中:@SpringBootTest(classes = FooConfig.class)