我的抽象测试类有以下代码(我知道XmlBeanFactory
withClassPathResource
已被弃用,但不太可能出现问题)。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public abstract class AbstractIntegrationTest {
/** Spring context. */
protected static final BeanFactory context = new XmlBeanFactory(new ClassPathResource(
"com/.../AbstractIntegrationTest-context.xml"));
...
}
它加载默认的测试配置 XML 文件AbstractIntegrationTest-context.xml
(然后我使用自动装配)。我还需要在用@BeforeClass
and注释的静态方法中使用 Spring @AfterClass
,所以我有一个单独的上下文变量指向同一个位置。但问题是这是一个单独的上下文,它将有不同的 bean 实例。那么如何合并这些上下文,或者如何@ContextConfiguration
从我的静态上下文中调用 Spring 的 bean 初始化?
我想到了一个可能的解决方案,摆脱那些静态成员,但我很好奇,如果我可以通过对代码进行相对较小的更改来做到这一点。