记录找到zuul网关是怎么加载routes路由的

一、根据项目启动去找

一般习惯性去找日志,看加载了哪些,发现有一个zuulFilterInit 类,其他没有了。点进去发现并没有可用的信息。因此判断,zuul网关应该是在启动后懒加载的路由。

因此打算访问一个请求试试/webapi/1

再看日志,发现多了一个ZuulHandlerMapping

 点进去看应该是这里

只要找到 routeLocator ,就能找到在哪加载的。

二、routeLocator在哪刷新

看到ZuulHandlerMapping里,然后找到setDirty方法

进到CompositeRouteLocator里,发现已有数据。如果想动态变路由,到这里就结束了。

三、routeLocator在哪初始化

但是我想在初始化的时候就把他变了,因此再往上找,整个类发现只有这个方法初始化了

点过去,发现是ZuulServerAutoConfiguration初始化CompositeRouteLocator给到的。

因为带着@Bean 所以是spring注入的。

因此去找在哪里注入的,找到最像的就是

 果然,里面有个ZuulRoute对象,里面就是配置中心的数据。

 点过去直接就是配置文件。因此找到了初始化的地方,改这里即可

猜你喜欢

转载自blog.csdn.net/qq_37761711/article/details/129926203