Spring @Autowired对象为null

时间:2017-09-18 13:51:49

标签: spring unit-testing spock

我在spock框架中编写规范类。

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

         @Autowired
         private MyService myServiceImplementation

         def "  " {
             //code
         }
    }

课程MyServiceImplementation已注明@Service。我没有使用XML配置。 MyServiceImpl是界面的实现:MyService

为什么自动对象myServiceImplementation为空?

我尝试使用ComponentScan但它仍然无效。

1 个答案:

答案 0 :(得分:1)

首先,您需要在类路径上同时拥有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();
    }
}