Я выполняю работу, которая динамически устанавливает маршруты в Spring Cloud Gateway во время выполнения, используя следующие коды:
@Autowired
@Qualifier("inMemoryRouteDefinitionRepository")
private RouteDefinitionWriter routeDefinitionWriter;
RouteDefinition routeDefinition = ...; // my own route
routeDefinitionWriter.save(Mono.just(routeDefinition)).subscribe();
this.publisher.publishEvent(new RefreshRoutesEvent(this));
Маршрут может быть успешно добавлен, независимо от того, доступны ли предикаты и фильтры внутри или даже существуют. И исключение будет происходить, если существует маршрут с несуществующими предикатами или фильтрами.
Вопрос заключается в том, как получить список предикатов и фильтров во время выполнения, чтобы я мог проверить, является ли переданное RouteDefinition допустимым.
До сих пор я обнаружил, что список доступных предикатов и фильтров внутри класса RouteDefinitionRouteLocator, и я могу автоматически связать его экземпляр. Но, похоже, решение проблемы не очень удачное.
@Autowired
@Qualifier("routeDefinitionRouteLocator")
private RouteDefinitionRouteLocator routeDefinitionRouteLocator;
Есть идеи? Большое спасибо !!