做技术支持的网站有百度自动点击器怎么用
Filter
任务详情
对于Provider服务中dubbo接口以Service结尾的,返回结果添加,Hello World
。
实现方式
在Provider中自定义一个Filter,在Filter中修改返回结果。
代码
import java.util.Objects;
import org.apache.dubbo.rpc.AsyncRpcResult;
import org.apache.dubbo.rpc.Filter;
import org.apache.dubbo.rpc.Invocation;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.Result;
import org.apache.dubbo.rpc.RpcException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;/*** @author admin*/
public class AppendedFilter implements Filter {private static final Logger logger = LoggerFactory.getLogger(AppendedFilter.class);@Overridepublic Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {Result result = invoker.invoke(invocation);if (Objects.nonNull(invocation.getServiceName()) && invocation.getServiceName().endsWith("Service")) {AsyncRpcResult asyncRpcResult = (AsyncRpcResult) result;Result appResponse = asyncRpcResult.getAppResponse();appResponse.setValue(appResponse.getValue() + ",Hello World");}return result;}
}
SPI配置
在META-INF/dubbo/org.apache.dubbo.rpc.Filter文件中添加以下配置
appended=com.doudou.dubbo.filter.AppendedFilter
配置文件
在resources/application.properties
文件中添加如下配置,激活刚才的自定义 Filter 实现:
dubbo.provider.filter=appended
注意
除了通过META-INF/dubbo/org.apache.dubbo.rpc.Filter
配置激活Filter之外,还可以通过为实现类增加@Activate
注解,已在满足某些条件时自动激活Filter实现@Activate(group="provider") public class AppendedFilter implements Filter {}
处理结果
2025-03-27 20:59:41.953 INFO 8156 --- [ main] com.doudou.dubbo.consumer.Task01 : result:hello zhangsan,Hello World