spring-boot - IntelliJ Idea + 无法 Autowiring 。找不到类型的 beans

标签 spring-boot intellij-idea

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

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

Sample Code

@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 bean 连接正确并且是 IDE 问题吗?

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

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

  3. 注释
  4. 尝试添加一个配置类(如 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

关于spring-boot - IntelliJ Idea + 无法 Autowiring 。找不到类型的 beans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58201314/

相关文章:

android - IntelliJ "keep indents on empty lines"不工作

intellij-idea - Idea Intellij 如何从控制台的打印语句导航到行

java - rabbitmq 抛出 AmqpException : No method found for class [B

java - Camel REST DSL swagger 输出包含无效的 responseSchema 元素

java - Lombok + jackson 不可变

intellij-idea - 按下Alt + Gr + 8([)时,IntelliJ产品将移至最后一个开口支架

spring-boot - Haproxy 与 3 个 Spring Boot 应用程序

java - NoSuchBeanDefinition 异常

apache-flex - 在 MAC 上哪里可以找到 IntelliJ IDEA 9.0 的 Flex 插件?

java - LinkedHashMap 的子类作为缓存