Я использую разные профили и на основе этих профилей я создаю два разных предварительных фильтра в Zuul, например:
@SpringBootApplication
@EnableZuulProxy
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
appLogger.info("++++++started application+++++");
}
// For Default profile
@Configuration
@Profile({"default"})
public static class PreFilterDefault {
@Bean
public PreFilterInternal preFilter() {
return new PreFilterDefault();
}
}
//For local profile
@Configuration
@Profile({"local"})
public static class PreFilterLocal {
@Bean
public PreFilterInternal preFilter() {
return new PreFilterLocal();
}
}
}
Но всякий раз, когда я запускаю свой предварительный фильтр с любым из профилей, запускается метод run дважды:
@Component
@Profile({"default"})
public class PreFilterDefault extends ZuulFilter {
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 1;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
System.out.println("hello");
}
Привет печатается дважды. Я не могу понять, что я делаю неправильно.