JAVA全系列 教程
3762个小节阅读:7090.8k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
需求:通过过滤器,配置是否在控制台输出日志信息,以及是否记录日志。
实现步骤:
- 1、类名必须叫做XxxGatewayFilterFactory,注入到Spring容器后使用时的名称就叫做Xxx。
- 2、创建一个静态内部类Config, 里面的属性为配置文件中配置的参数, - 过滤器名称=参数1,参数2…
- 2、类必须继承 AbstractGatewayFilterFactory,让父类帮实现配置参数的处理。
- 3、重写shortcutFieldOrder()方法,返回List参数列表为Config中属性集合
return Arrays.asList(“参数1”,参数2…)
- 4、无参构造方法中super(Config.class)
- 5、编写过滤逻辑 public GatewayFilter apply(Config config)
xxxxxxxxxx
# 过滤器,请求在传递过程中可以通过过滤器对其进行一定的修改
filters:
# 控制日志是否开启
- Log=true
xxxxxxxxxx
/**
* 自定义局部过滤器
*/
@Component
public class LogGatewayFilterFactory extends AbstractGatewayFilterFactory<LogGatewayFilterFactory.Config> {
public LogGatewayFilterFactory(){
super(Config.class);
}
@Override
public List<String> shortcutFieldOrder() {
return Arrays.asList("consoleLog");
}
@Override
public GatewayFilter apply(Config config) {
return ((exchange, chain) -> {
if (config.consoleLog) {
System.out.println("console日志已开启...");
}
return chain.filter(exchange);
});
}
@Data
public static class Config{
private boolean consoleLog;
}
}
请求http://localhost:9527/payment/lb
1.服务网关Gateway自定义网关过滤器需要继承_____类。
A AbstractGatewayFilterFactory
B GatewayFilterFactory
C GatewayFilter
D 以上都错误
1=>A