Open Maybrittnelson opened 5 years ago
作用时机:args转成properties 默认类型都是default。也可以转换成特定的数据结构。如org.springframework.cloud.gateway.handler.predicate.PathRoutePredicateFactory#shortcutType shortcutFieldPrefix 作用时机:properites中去除prefix到config 默认是“”。也可以添加前缀。如org.springframework.cloud.gateway.handler.predicate.WeightRoutePredicateFactory#shortcutFieldPrefix shortcutFieldOrder 作用时机:normalize中 默认是空list。也可以指定字段的顺序。如org.springframework.cloud.gateway.handler.predicate.WeightRoutePredicateFactory#shortcutFieldOrder org.springframework.cloud.gateway.support.ShortcutConfigurable#getValue代码片段 作用时机:获取上下文的bean解析器参考或者直接赋值string if (rawValue != null && rawValue.startsWith("#{") && entryValue.endsWith("}")) { // assume it's spel StandardEvaluationContext context = new StandardEvaluationContext(); context.setBeanResolver(new BeanFactoryResolver(beanFactory)); Expression expression = parser.parseExpression(entryValue, new TemplateParserContext()); value = expression.getValue(context); }
作用时机:args转成properties 默认类型都是default。也可以转换成特定的数据结构。如org.springframework.cloud.gateway.handler.predicate.PathRoutePredicateFactory#shortcutType
作用时机:properites中去除prefix到config 默认是“”。也可以添加前缀。如org.springframework.cloud.gateway.handler.predicate.WeightRoutePredicateFactory#shortcutFieldPrefix
作用时机:normalize中 默认是空list。也可以指定字段的顺序。如org.springframework.cloud.gateway.handler.predicate.WeightRoutePredicateFactory#shortcutFieldOrder
作用时机:获取上下文的bean解析器参考或者直接赋值string
if (rawValue != null && rawValue.startsWith("#{") && entryValue.endsWith("}")) { // assume it's spel StandardEvaluationContext context = new StandardEvaluationContext(); context.setBeanResolver(new BeanFactoryResolver(beanFactory)); Expression expression = parser.parseExpression(entryValue, new TemplateParserContext()); value = expression.getValue(context); }
## org.springframework.cloud.gateway.route.RouteDefinitionRouteLocator#lookup代码片段
Map<String, String> args = predicate.getArgs(); Map<String, Object> properties = factory.shortcutType().normalize(args, factory, this.parser, this.beanFactory); Object config = factory.newConfig(); ConfigurationUtils.bind(config, properties, factory.shortcutFieldPrefix(), predicate.getName(), validator, conversionService);
shortcutType