dubbo 自定义filter

目的

通过自定义filter,在dubbo接口被调用的时候,打印入参信息、请求接口名称和返回值信息,这样可以避免在每个接口中手动打印接口请求的入参等日志,实现统一打印日志的方式有多种,这里只是为了学习自定义filter,所以以这个为例

应用

要实现自定义filter,需要有以下几个步骤

1.自定义filter实现类
@Activate(group = "provider")
public class DubboProviderLogFilter implements Filter {
   
    @Override
    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
   
        System.out.println(
                "打印日志:interface:" + invoker.getInterface().getSimpleName() + ";methodName:" + invocation.getMethodName()
                        + ";argument:" + invocation.getArguments());
        Result result = invoker.invoke(invocation);
        System.out.println("打印返回结果");
        System.out.println(result != null ? result.getValue() : "返回结果为空");
        return result;
    }
}
2.配置filter

dubbo 自定义filter_第1张图片

这里的目录不能错,并且必须是这种样子的
dubbo 自定义filter_第2张图片
这里踩了一个坑,在启动的时候,一直提示

org.springframework.beans.factory.BeanCreationException

你可能感兴趣的:(dubbo,dubbo)