fegin aop拦截

feign调用初步了解

开始aop demo测试

以自定义注解的方式,决定哪些接口要进行feign拦截

1.自定义注解 SendBankAnnotation,对使用改注解的feign接口进行拦截

@Target({ElemenType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SendBankAnnotation{
	//接口标识
	String value();
	//提示语
	String notes() default "";
}




2.feign远程调用
@FeignClient(name="custorm",fallback=Hysitx.class)
public interface IRemoteCallService {

	@RequestMapping(value="/custorm/getTest",method = RequestMethod.POST)
	@SendBankAnnotation(value = "自定义接口名称",notes= “备注”)
    List<String> test(BaseReq req);
}

3.aop拦截
 
 @Aspect
 @Component
 public class sendFilter{
	private Loggen logger = TSLogFactory.get(sendFilter.class);

	@Pointcut("@annotation(com....自定义注解的路径)")
	private void execute(){}

	@around("execute()")
	public Object around(ProceedingJoinPoint pjp){
	long beginTime = System.currentTimeMillis();
	Object result = null;
	String edspTransCode = "";//交易接口

	try{
		//对请求的参数进行转换
		Object[] paramValues = pjp.getArgs();//获取参数数组
		Signature sig = pjp.getSignature();//获取方法对象
		MethodSignature msig = (MethodSignature )sig;
		Method method = msig.getMethod();

		//获取自定义注解的属性值
		SendBankAnnotation ann = method.getAnnotation(SendBankAnnotation.class);
		edspTransCode = ann.value();//自定义注解的 接口名称

		if("要过滤的接口名".equals(edspTransCode )){
			BaseReq  req = null;
			Object arg0 = pjp.getArgs()[0];//接收入参
			if(arg0 instanceof BaseReq){
					req = (BaseReq).arg0;
			}
			
		}

		transformDictArgs(edspTransCode,pjp.getArgs());//抽取公共方法,对入参进行转换
		logger.inf("接口变化:+edsptranscode+",参数"+JSON.tpJSONString(paramValues ));
		result = pjp.preceed();
		//此时对返回的结果做参数转换
		transformDictResult(edspTransCode,result);
	}finally{
	long costTime = System.currenTimeMillis()-beginTime;
	logger.info("接口编号:"+edspTransCode +"耗时:"+costTime+",返回值:"+JSON.tpJSONString(result ));
	}

	}

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值