@autowired variables access in spock setupspec()

svmlkihl  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(519)

我需要执行一次代码块启动时在 Spock 测验。我不能用 @AutowiredsetupSpec() 但是,这是这种初始化的默认方法 @Bean 直到那个时候才能装子弹。
在网上找到(可追溯到2015年)来源:
这种行为是spring的testcontext框架设计的结果。我看不出有什么办法能在不碰到其他问题的情况下改变它。在junit中使用testcontext框架时,情况没有任何不同。
已经6年了,有没有干净的方法?我想省去那些肮脏的解决方法

w1jd8yoj

w1jd8yoj1#

你很幸运,感谢@erdi在spock-spring模块的@shared-fields中实现了这个功能,你可以在spock-snapshot2.0版本中尝试这个功能,它将在spock-2.0m5版本中出现。你需要选择加入 @Shared 通过放置注入 @EnableSharedInjection 在您的规范中,阅读javadoc并理解上述操作的含义也是非常重要的。

相关问题