【问题标题】:Is there some way to get access to Spring bean from Spock extension?有没有办法从 Spock 扩展访问 Spring bean?
【发布时间】:2017-06-19 23:12:02
【问题描述】:

有一个我想做的例子。 服务客户端是一个 Spring bean,它从外部配置类中检索,应该从 Spock 扩展中调用。

class ServiceCleintExtension implements IGlobalExtension {

    @Autowired
    ServiceCLient client

    @Override
    void start() {
       client.execute()
    }

    ...
}

UPD: 我通过使用 Spring TestExecutionListener 和 SpecInfo/FeatureInfo 的自定义静态“容器”找到了解决方案。

【问题讨论】:

    标签: spring testing spock


    【解决方案1】:

    不,这是不可能的,IGlobalExtension 由 Spock 初始化和管理。此外,它们是单例,不能很好地与多个可能的 Spring 上下文相结合。

    如果您只想在设置期间调用注入 bean 的方法,那么我建议使用基于注释的扩展。查看内置的AutoCleanup 扩展以供参考。

    【讨论】:

      猜你喜欢
      • 2010-09-07
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      相关资源
      最近更新 更多