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@Componentpublic 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 ));}}}

fegin aop拦截相关推荐

  1. 用户操作拦截并作日志记录--自定义注解+AOP拦截

    作为运营除了处理系统生产问题,还要处理大量的用户上报事件,这部分工作占用了大量的人力.所有考虑把一部分事件查询处理做成一个自助平台,让用户自行核查处理.于是就有了用户自助系统.考虑到如何计量这个工具平 ...

  2. aop区别 decorator_Decorator或Proxy模式;AOP拦截器

    总结如下:过滤器实现方式在不保证功能前提下,从性能角度考虑有如下先后顺序:Decorator或Proxy模式:AOP拦截器. 考虑使用AOP拦截器时,最好选择那些受众面积比较广的功能,例如一些基础通用 ...

  3. 【框架】[Spring]XML配置实现AOP拦截-切点:JdkRegexpMethodPointcut

    转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 如果你把此种纯Java方式实现AOP拦截读懂了,理解本篇博客会更容易. [框架][S ...

  4. SpringBoot AOP拦截器

    在Spring里面还提供有一种AOP拦截器配置,不过大部分的AOP拦截器都是围绕着业务层进行拦截处理的.1.建立一个普通的业务操作接口和它的子类:package com.microboot.servi ...

  5. ASP.NET Core中使用IOC三部曲(三.采用替换后的Autofac来实现AOP拦截)

    上一篇ASP.NET Core中使用IOC三部曲(二.采用Autofac来替换IOC容器,并实现属性注入)我们讲了如何将默认的容器替换为Autofac,并使用属性注入.那么这一篇我们就来讲讲如何利用A ...

  6. 运用Unity实现AOP拦截器[结合异常记录实例]

    运用Unity实现AOP拦截器[结合异常记录实例] 参考文章: (1)运用Unity实现AOP拦截器[结合异常记录实例] (2)https://www.cnblogs.com/wujy/p/33233 ...

  7. 从零开始学 Java - Spring AOP 拦截器的基本实现

    一个程序猿在梦中解决的 Bug 没有人是不做梦的,在所有梦的排行中,白日梦最令人伤感.不知道身为程序猿的大家,有没有睡了一觉,然后在梦中把睡之前代码中怎么也搞不定的 Bug 给解决的经历?反正我是有过 ...

  8. Spring AOP拦截规则的两种定义方式

    Spring AOP拦截规则的两种定义方式 AOP的根本目的就是解耦,分开业务代码与系统共用代码,例如打印日志. Spring支持AspectJ的注解式切面编程,主要包含4个部分,分别是 使用@Asp ...

  9. spring面向切面aop拦截器

    spring中有很多概念和名词,其中有一些名字不同,但是从功能上来看总感觉是那么的相似,比如过滤器.拦截器.aop等. 过滤器filter.spring mvc拦截器Interceptor .面向切面 ...

最新文章

  1. linux下用js生成xml,js2xml:将javascript字符串转换为xml
  2. 射线与三角形求交,并判断是否在三角形内的完整代码(带测试)
  3. 脑电分析系列[MNE-Python-16]| 脑电数据的Epoching处理
  4. Javascript变量函数浅谈
  5. Eigen 矩阵运算库在实际项目中的使用
  6. JavaScript(19)jQuery HTML 获取和设置内容和属性
  7. grafana—— worldPing APP 中文
  8. jasperreports java web报表_iReport+jasperReports制作WEB报表
  9. How-to: Use the ShareLib in Apache Oozie
  10. python绑定内核_向Ipython添加python2内核
  11. 订阅号微信公众号历史文章爬虫php,一步步教你怎么打造微信公众号历史文章爬虫...
  12. Web开发(初级)- 常用css总结,方便查询
  13. python期权价格计算器_使用Python自带GUI tkinter编写一个期权价格计算器
  14. 微信小程序毕业设计 驾校考试小程序毕设开题报告
  15. 苹果应用提审与NAT64
  16. 《疯狂Python讲义》数字转人民币大写完整代码
  17. 春季养肝注意三个行为,做对了一年少生病
  18. android测试内存的软件下载,AndroBench p10内存门app下载
  19. labelme_json_to_dataset报错: ModuleNotFoundError: No module named ‘labelme
  20. 使用Python编写程序,输入一个大于 2 的自然数,然后输出小于该数字的所有素数组成的集合。

热门文章

  1. wps 的直接登录URL
  2. 成都盛铭轩:产品描述怎么写
  3. 佛系架构图秒懂OAuth2
  4. jQuery.inArray() 函数详解
  5. 计算机固态硬盘作用,盘点固态硬盘的几个好处,原来都是机械硬盘惹的祸!
  6. 一致性哈希(数据分库场景)
  7. vim删除多行以及插入多行
  8. Java注释炫酷写法
  9. jmeter性能测试面试题一【多测师_王sir】
  10. 【Python基础题9】计算a + aa + aaa + aaaa的值