引起:org.springframework.beans.factory.NoSuchBeanDefinitionException:Spring 5中没有类型的限定bean

时间:2018-04-19 09:56:48

标签: java spring spring-boot

我正在尝试使用Spring 5编写服务,但是我收到了依赖注入问题。我在使用@ Resource时出现问题。我最近从Spring 4迁移到了Spring 5.0.5并且在classapath中有以下jar文件

  • 弹簧AOP-5.0.5.RELEASE
  • 弹簧豆-5.0.5.RELEASE
  • 弹簧上下文5.0.5.RELEASE
  • 弹簧芯5.0.5.RELEASE
  • 弹簧表达-5.0.5.RELEASE
  • 弹簧 - 测试 - 5.0.5.RELEASE
  • 的junit-4.12

1 个答案:

答案 0 :(得分:0)

由于您将类的上下文配置定义为TestClass.OptionalConfiguration,因此这是您的测试所知道的唯一配置。如果您想在此上下文中将CiScheduledExecutor定义为bean,则需要在测试配置中对其进行组件扫描:

@Configuration
@ComponentScan("my.base.package")
static class OptionalConfiguration {
        @Bean
        List<Item> someString() {
            return new ArrayList<>();
        }
        @Bean
        Object foo(List<Item> obj) {
            return new Object();
        }
    }

虽然如果你正在进行类似集成的测试,需要从实际的运行时Spring上下文中引入几个bean定义,那么你应该考虑使用@SpringBootTest来完成很多工作,请看这里:

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html