Spring @Autowired 对象为空

Spring @Autowired object is null

我正在 spock 框架中编写规范 class。

    @ContextConfiguration(classes = [MyServiceImplementation.class])
    class MyServiceSpecification extends Specification {

         @Autowired
         private MyService myServiceImplementation

         def "  " {
             //code
         }
    }

注解classMyServiceImplementation@Service。我没有使用 XML 配置。 MyServiceImpl 是接口的实现:MyService.

为什么自动装配对象 myServiceImplementation 为空?

我试过 ComponentScan 还是不行。

首先,您需要在类路径中同时包含 spock-corespock-spring。其次,@ContextConfiguration(classes= 获取配置列表 类,而不是 bean 类。

@ContextConfiguration(classes = [MyConfig.class])
class MyServiceSpecification extends Specification {

     @Autowired
     private MyService myServiceImplementation

     def "  " {
         //code
     }
}

// You could also define @ComponentScan here
class MyConfig {
    @Bean
    MyService myService() {
      return new MyServiceImplementation();
    }
}