前言
项目中使用了dubbo,想实现拦截的功能,查看源码对dubbo-filter 做下了解
dubbo-filter-validation 源码查看
1 | /** |
ValidationFilter 类继承Filter接口, 重写 invoke方法对调用方法参数进行拦截,每个Filter都要加上@Activate注解用于激活,group当其中一个组匹配时,激活当前扩展,order为Filter排序,可选参数。
dubbo-filter-validation配置
配置在META-INF/dubbo/internal/com.alibaba.dubbo.rpc.filter 文件
文件内容
validation=com.alibaba.dubbo.validation.filter.ValidationFilter
dubbo-filter-exception 项目中使用
1 | (group = Constants.PROVIDER) |
dubbo-filter-exception 配置
配置在META-INF/dubbo/com.alibaba.dubbo.rpc.filter 文件
文件内容
dubboFilter=com.xx.xx.xx.filter.DubboFilter
运行结果
1 | [10-11 13:37:31.031] [WARN] [cat] Cat is lazy initialized! |
总结
可以通过filter 对接口请求、返回、异常 全局进行拦截和过滤。