java - 刷新 Spring ApplicationContext,而不重新初始化上下文,可能吗?

标签 java spring applicationcontext

我正在使用 JUnit 进行一些集成测试。我有一个 xml 文件,在其中声明了一些我想要注入(inject)的模板实体。在每个测试中,我都需要一个新的应用程序上下文,即任何测试都不应该依赖于/与其他测试耦合,因此在 setUp() 上,我需要在这些实体的默认起始值​​上“重新初始化” .

我可以通过重新加载来实现,但是这样我就不能使用@Autowired注解了。

@Before
public void setUp(){        
    ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:entityTemplates-Context.xml");
    homeA = (Home)ctx.getBean("homeA");
}

有没有办法做到这一点,同时仍然对这些实体使用@Autowired

最佳答案

您了解过 Spring 对集成测试的支持吗?

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/testing.html

我的团队将其用于我们需要 Spring 容器的集成测试。每次测试您都会获得新的上下文,但这会显着减慢测试速度。

关于java - 刷新 Spring ApplicationContext,而不重新初始化上下文,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9734948/

相关文章:

java - selenium webdriver 浏览器 ie10 中文件上传问题

java - Flash WebSockets 后备和 Jetty 8?

java - 我的 Java 代码中的 EOFException

xml - 在哪里可以找到示例 applicationContext.xml 文件

java - Freemarker 通过 Java 设置 checkTemplateLocation

java - 为什么我的测试不能从其父级继承其 ContextConfiguration 位置?

spring - LifecycleProcessor 未初始化 - 在通过上下文调用生命周期方法之前调用 'refresh'

java - 创建没有触发器的 Quartz 2.x xml 作业

spring - 在多个环境中运行测试套件

java - 无法启动位于上下文路径/HelloWorldStruts2 的应用程序