一:dubbo 拦截器
dubbo是一个被广泛应用的分布式服务框架,常与spring一起并用;如果想拦截dubbo服务接口,由于spring拦截的是web接口的调用,因此,dubbo提供了filter的扩展,通过继承Filter接口来实现拦截
1:dubbo.xml配置文件
<dubbo:provider id="assetProvider" application="defaultApplication” filter="assetExceptionFilter"/>
2:resource 文件下配置
新增目录 META-INF.dubbo,新建文件,命名为 com.alibaba.dubbo.rpc.Filter,将对应的拦截器写入到文件中
assetExceptionFilter=com.xiaoniu.asset.dubbo.filter.AssetExceptionFilter
3:拓展filter
@Activate(group = { Constants.PROVIDER }) public class AssetExceptionFilter implements Filter { private Logger logger = LoggerFactory.getLogger(AssetExceptionFilter.class); @Override public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException { try { Result result = invoker.invoke(invocation); if (!result.hasException()) { logger.info("###### finish successful, result:{}", result); return result; } Result rlt = null; Throwable e = result.getException();