1. 序言
除了使用官方给的配置文件配置路由,我们也可以自己在代码中配置路由功能
2. 实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| @Configuration public class RouteConfig {
@Autowired ProviderServiceGatewayFilterFactory providerServiceGatewayFilterFactory;
@Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
return builder.routes()
.route(r -> r.host("127.0.0.1").and() .path("/image1") .uri("http://example.com") )
.route(r -> r.path("/image2") .uri("http://example.com") ) .route(r->r.order(-1) .uri("lb://CloudGatewayProvider") .id("provider-predicate-java") .predicate( new TenantRoutePredicateFactory().apply( config -> { config.setTenantId("hello"); } )) .filters( providerServiceGatewayFilterFactory.apply( config ->{ config.setMessage("java-message"); config.setPostLogger(true); config.setPreLogger(false); } ) ) ) .build(); } }
|