【问题标题】:IntelliJ Idea + Could not autowire. No beans of type foundIntelliJ Idea + 无法自动装配。找不到类型的 bean
【发布时间】:2020-01-31 17:18:29
【问题描述】:

我在 IntelliJ Idea 中不断看到以下错误,但代码在执行期间运行良好。

Could not autowire. No beans of 'PortfolioRequestHandler' type found. less... (Ctrl+F1) 
Inspection info:Checks autowiring problems in a bean class.

示例代码

@ActiveProfiles("test")
@RunWith(SpringRunner.class)
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
@SpringBootTest(classes = {Application.class})
public class PortfolioRequestHandlerTest {

    @Autowired
    private PortfolioRequestHandler portfolioRequestHandler;

    ...
    ...
}

我该如何摆脱它?我正在使用 IntelliJ Idea ULTIMATE 2018.2

【问题讨论】:

标签: spring-boot intellij-idea


【解决方案1】:

您确定您的 Spring bean 连接正确并且是 IDE 问题吗?

  1. 检查您的PortfolioRequestHandler 类是否使用@Service@Component@Repository 注释(通过组件扫描配置bean)

  2. 否则检查您的 bean 是否连接到 @Configuration 带注释的类中 -> 在这种情况下,应该有一个方法返回 PortfolioRequestHandler 类型的实例并使用 @Bean 进行注释

  3. 尝试添加一个配置类(如 2. 中所述)并将该类添加到您的 @SpringBootTest(classes = {...} 注释中;见下面的例子

@Configuration
public class CustomBeanConfig {

   @Bean
   public PortfolioRequestHandler get PortfolioRequestHandler() {
       return new PortfolioRequestHandler();
   }
}

@SpringBootTest(classes = {Application.class, CustomBeanConfig.class})

  1. 看看这个,也许有帮助:https://stackoverflow.com/a/50267869/150623

【讨论】:

  • #3 解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 2019-09-16
  • 2022-01-09
  • 2022-11-08
  • 2019-06-14
  • 1970-01-01
相关资源
最近更新 更多