@SpringBootApplication public class Application { @Bean public RouteLocator staticRoutes(RouteLocatorBuilder builder) { return builder .routes() .route(defaultRoute()) .build(); } private Function defaultRoute() { return r -> r .path("/**") .filters(defaultFilters()) .uri("lb://application:8080"); } private Function defaultFilters() { return f -> f .preserveHostHeader() .filter(this::addCustomHeader) .addResponseHeader("x-static-router-header", random() + ""); } private Mono addCustomHeader(ServerWebExchange exchange, GatewayFilterChain chain) { exchange.getResponse().getHeaders().add("x-dynamic-router-header", random() + ""); return chain.filter(exchange); } private double random(){ return Math.random(); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } }