在业务系统中,如果要使用dubbo的隐式传参功能,可以使用RpcContext对象
使用
在服务消费者这一端这样设置即可
RpcContext.getContext().setAttachment("age","22");
然后在服务提供者这一端
String age = RpcContext.getContext().getAttachment("age");
System.out.println("隐式传参获取到的age:" + age);
就可以获取到设置的参数
源码分析
其实要实现隐式传输的传递,也是需要进行一层转换的
隐式传参的原理,用一句话来解释:
在服务发送的时候(也就是服务消费端),会将设置的参数,在发送请求的时候,一起发送出去
在服务提供者这一端,接收到消费端请求的时候,再将参数取出来
AbstractInvoker
@Override
public Result invoke(Invocation inv) throws RpcException {
// if invoker is destroye