提交 b2ecc32d 编写于 作者: 龍的传人's avatar 龍的传人

dubbo rpc 拦截器

Change-Id: Ib90b61ff8734db39bc41e8daf95b10b8f943ebc1
上级 d86dc1f6
......@@ -33,6 +33,13 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.8</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.codingapi.txlcn</groupId>
<artifactId>txlcn-p6spy</artifactId>
......@@ -82,7 +89,6 @@
<artifactId>mysql-connector-java</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
......
package com.codingapi.txlcn.tc.rpc;
import com.alibaba.dubbo.common.Constants;
import com.alibaba.dubbo.common.extension.Activate;
import com.alibaba.dubbo.rpc.*;
import lombok.extern.slf4j.Slf4j;
/**
* @author zhanghonglong
* @date 2020/10/28 11:01
*/
@Activate(group = Constants.CONSUMER)
@Slf4j
public class AlibabaDubboRpcTransactionInterceptor implements Filter {
@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
RpcTransactionContext.getInstance().build(invocation.getAttachments()::put);
return invoker.invoke(invocation);
}
}
package com.codingapi.txlcn.tc.rpc;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.rpc.*;
/**
* @author zhanghonglong
* @date 2020/10/28 11:01
*/
@Activate(group = CommonConstants.CONSUMER)
@Slf4j
public class ApacheDubboRpcTransactionInterceptor implements Filter {
@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
RpcTransactionContext.getInstance().build(invocation.getAttachments()::put);
return invoker.invoke(invocation);
}
}
......@@ -3,6 +3,7 @@ package com.codingapi.txlcn.tc.rpc;
import feign.Feign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
......@@ -50,6 +51,16 @@ public class RpcTransactionConfiguration {
}
@Bean
@ConditionalOnClass(org.apache.dubbo.rpc.Filter.class)
public ApacheDubboRpcTransactionInterceptor apacheDubboRpcTransactionInterceptor(){
return new ApacheDubboRpcTransactionInterceptor();
}
@Bean
@ConditionalOnClass(com.alibaba.dubbo.rpc.Filter.class)
@ConditionalOnMissingClass("org.apache.dubbo.rpc.Filter")
public AlibabaDubboRpcTransactionInterceptor alibabaDubboRpcTransactionInterceptor(){
return new AlibabaDubboRpcTransactionInterceptor();
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册