IntelliJ Idea +无法自动连接,未找到类型的Bean

qyswt5oh  于 9个月前  发布在  IntelliJ IDEA
关注(0)|答案(2)|浏览(206)

我在我的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

ia2d9nvy

ia2d9nvy1#

你确定你的Springbean连接正确,这是IDE的问题吗?
1.检查PortfolioRequestHandler类是否使用@Service@Component@Repository进行注解(通过组件扫描进行bean配置)
1.否则,检查bean是否连接在@Configuration注解的类中->在这种情况下,应该有一个方法返回PortfolioRequestHandler类型的示例,并使用@Bean进行注解
1.尝试添加一个配置类(如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

q1qsirdb

q1qsirdb2#

如果PortfolioRequestHandler在不同的模块中声明,您可以让Spring扫描并找到指定包路径的Bean。即

@SpringBootTest
@ComponentScan(basePackages = "PATH TO THE MODULE WHERE YOUR BEAN IS DECLARED") {

}

相关问题