gpt4 book ai didi

java - 添加 `@SpringBootTest` 注释会触发 IntelliJ 误报

转载 作者:行者123 更新时间:2023-12-01 21:25:53 32 4
gpt4 key购买 nike

所以如果你有一个测试类

class FooControllerIT{
@Autowired FooController controller;
}

并且您向该类添加一个 @SpringBootTest 注释,IntelliJ 声称

Could not autowire. No beans of 'FooController' type found.

这是一个谎言,因为测试运行并通过得很好。

如果我用 @Component 注释替换 @SpringBootTest 注释,“错误”就会消失(当我替换 @SpringBootTest 注释再次返回)。

什么原因导致这种行为?

(我使用的是旗舰版 2019.1,使用 Spring Boot 2.1.8-RELEASE)

最佳答案

找不到您的 Controller 的可能原因是它与注释为 @SpringBootApplication 的主应用程序类不在同一(或更高)包中。如果不想移动Controller,可以新建一个配置类,注释为@ComponentScan

@Configuration
@ComponentScan(basePackages = "com.your.controller.package")
public class FooConfig {
}

即使您可以手动将此配置添加到测试 spring 上下文中:@SpringBootTest(classes = FooConfig.class)

关于java - 添加 `@SpringBootTest` 注释会触发 IntelliJ 误报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58833053/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com