我目前正在开发一个工具,它分析 Spring 应用程序的 ApplicationContexts。为了开始分析,我已经实现了一个抽象的 JUnit-Test 类,它必须通过目标应用程序中的具体实例进行扩展。这使得为更多的上下文文件编写自己的测试变得非常容易,我的工具也可以使用上下文加载功能。
对我来说,问题是基于 Spring 的 JUnit-Tests 会自动启用自动装配,即使在目标上下文中未启用它也是如此。但我需要不变的上下文,以保证分析结果的正确性。
我嵌入在分析工具中的抽象测试类如下所示:
@RunWith(SpringJUnit4ClassRunner.class)
public abstract class AbstractContextLoader implements ApplicationContextAware {
private ApplicationContext applicationContext;
@Test
public void analyseContext() {
SpringContextAnalysis.startApplication(applicationContext);
}
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}
具体实现可能如下所示:
@ContextConfiguration(locations="context.xml")
public class ContextAnalysis extends AbstractContextLoader {
}
在使用基于 Spring 的 JUnit-Tests 时是否可以禁用 Autowiring-Components 的自动实例化?