<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
management:
endpoint:
gateway:
enabled: true
endpoints:
web:
exposure:
include: ‘*‘
查看所有 routes: http://localhost:8080/actuator/gateway/routes
查看所有 globalfilters: http://localhost:8080/actuator/gateway/globalfilters
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration,\org.springframework.cloud.gateway.config.GatewayAutoConfiguration,\org.springframework.cloud.gateway.config.GatewayHystrixCircuitBreakerAutoConfiguration,\org.springframework.cloud.gateway.config.GatewayResilience4JCircuitBreakerAutoConfiguration,\org.springframework.cloud.gateway.config.GatewayLoadBalancerClientAutoConfiguration,\org.springframework.cloud.gateway.config.GatewayNoLoadBalancerClientAutoConfiguration,\org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration,\org.springframework.cloud.gateway.config.GatewayRedisAutoConfiguration,\org.springframework.cloud.gateway.discovery.GatewayDiscoveryClientAutoConfiguration,\org.springframework.cloud.gateway.config.SimpleUrlHandlerMappingGlobalCorsAutoConfiguration,\org.springframework.cloud.gateway.config.GatewayReactiveLoadBalancerClientAutoConfiguration
org.springframework.boot.env.EnvironmentPostProcessor=\org.springframework.cloud.gateway.config.GatewayEnvironmentPostProcessor
我们可以根据官网的示意图,可知程序的入口是通过 RoutePredicateHandlerMapping 核心处理,因此我们在 对应的 getHandlerInternal 方法打断点,查看请求流程;
根据堆栈我们可以清楚看到实际请求时,DispatcherHandler 到 AbstractHandlerMapping 然后 RoutePredicateHandlerMapping 最后执行到 getHandlerInternal;
贯穿程序请求的上下文中,我们一直会看到 exchange 的变量,ServerWebExchange 默认实现是 DefaultServerWebExchange,我们从截图中可以看出这个变量不仅包含请求的上下文,还包括 applicationContext,相当于用啥都不愁了。
原文:https://www.cnblogs.com/holddie/p/springcloudgatewayji-chu-pian-yi.html