Java 我需要我的SpringBootWebApplication在JUnit中重新启动

Java 我需要我的SpringBootWebApplication在JUnit中重新启动,java,spring,junit,spring-boot,apache-zookeeper,Java,Spring,Junit,Spring Boot,Apache Zookeeper,不必详细说明,我在一次运行Junit测试时遇到了一个问题。如果我一班一班地运行它们,一切都很好!否则我会遇到麻烦,因为我无法在junit测试类之间重新启动我的WebApplication。这导致我的Web应用程序中有Zookeeper服务器客户端,在我关闭和启动Zookeeper服务器之后,这些客户端会在类之间挂起。这些Zookeeper服务器客户端可能需要一段时间才能与服务器重新同步,这会导致不可预知的行为 有没有办法通过调用JUnit测试的@BeforeClass和@AfterClass方法

不必详细说明,我在一次运行Junit测试时遇到了一个问题。如果我一班一班地运行它们,一切都很好!否则我会遇到麻烦,因为我无法在junit测试类之间重新启动我的WebApplication。这导致我的Web应用程序中有Zookeeper服务器客户端,在我关闭和启动Zookeeper服务器之后,这些客户端会在类之间挂起。这些Zookeeper服务器客户端可能需要一段时间才能与服务器重新同步,这会导致不可预知的行为

有没有办法通过调用JUnit测试的@BeforeClass和@AfterClass方法来重新启动SpringBootServletilizer类

WebApplication.java

@ComponentScan
@EnableAutoConfiguration
@EnableWebMvc
@EnableHyperMediaSupport(...)
@PropertySources(...)
public class WebApplication extends SpringBootServletInitializer
{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)
    {
        return builder.sources(WebApplication.class);
    }

    @Override
    protected WebApplicationContext run(SpringApplication application)
    {
        application.getSources().remove(ErrorPageFilter.class);
        return (WebApplicationContext) application.run();
    }

    public static void main(String[] args)
    {
        SpringApplication.run(WebApplication.class, args);
    }
}
您可以使用注释


这将提示Spring测试运行程序在测试方法之间重新加载上下文。

可能
@DirtiesContext
?答对 了请将您的评论转换为答案,以便我检查:D