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@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拦截相关推荐
- 用户操作拦截并作日志记录--自定义注解+AOP拦截
作为运营除了处理系统生产问题,还要处理大量的用户上报事件,这部分工作占用了大量的人力.所有考虑把一部分事件查询处理做成一个自助平台,让用户自行核查处理.于是就有了用户自助系统.考虑到如何计量这个工具平 ...
- aop区别 decorator_Decorator或Proxy模式;AOP拦截器
总结如下:过滤器实现方式在不保证功能前提下,从性能角度考虑有如下先后顺序:Decorator或Proxy模式:AOP拦截器. 考虑使用AOP拦截器时,最好选择那些受众面积比较广的功能,例如一些基础通用 ...
- 【框架】[Spring]XML配置实现AOP拦截-切点:JdkRegexpMethodPointcut
转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 如果你把此种纯Java方式实现AOP拦截读懂了,理解本篇博客会更容易. [框架][S ...
- SpringBoot AOP拦截器
在Spring里面还提供有一种AOP拦截器配置,不过大部分的AOP拦截器都是围绕着业务层进行拦截处理的.1.建立一个普通的业务操作接口和它的子类:package com.microboot.servi ...
- ASP.NET Core中使用IOC三部曲(三.采用替换后的Autofac来实现AOP拦截)
上一篇ASP.NET Core中使用IOC三部曲(二.采用Autofac来替换IOC容器,并实现属性注入)我们讲了如何将默认的容器替换为Autofac,并使用属性注入.那么这一篇我们就来讲讲如何利用A ...
- 运用Unity实现AOP拦截器[结合异常记录实例]
运用Unity实现AOP拦截器[结合异常记录实例] 参考文章: (1)运用Unity实现AOP拦截器[结合异常记录实例] (2)https://www.cnblogs.com/wujy/p/33233 ...
- 从零开始学 Java - Spring AOP 拦截器的基本实现
一个程序猿在梦中解决的 Bug 没有人是不做梦的,在所有梦的排行中,白日梦最令人伤感.不知道身为程序猿的大家,有没有睡了一觉,然后在梦中把睡之前代码中怎么也搞不定的 Bug 给解决的经历?反正我是有过 ...
- Spring AOP拦截规则的两种定义方式
Spring AOP拦截规则的两种定义方式 AOP的根本目的就是解耦,分开业务代码与系统共用代码,例如打印日志. Spring支持AspectJ的注解式切面编程,主要包含4个部分,分别是 使用@Asp ...
- spring面向切面aop拦截器
spring中有很多概念和名词,其中有一些名字不同,但是从功能上来看总感觉是那么的相似,比如过滤器.拦截器.aop等. 过滤器filter.spring mvc拦截器Interceptor .面向切面 ...
最新文章
- linux下用js生成xml,js2xml:将javascript字符串转换为xml
- 射线与三角形求交,并判断是否在三角形内的完整代码(带测试)
- 脑电分析系列[MNE-Python-16]| 脑电数据的Epoching处理
- Javascript变量函数浅谈
- Eigen 矩阵运算库在实际项目中的使用
- JavaScript(19)jQuery HTML 获取和设置内容和属性
- grafana—— worldPing APP 中文
- jasperreports java web报表_iReport+jasperReports制作WEB报表
- How-to: Use the ShareLib in Apache Oozie
- python绑定内核_向Ipython添加python2内核
- 订阅号微信公众号历史文章爬虫php,一步步教你怎么打造微信公众号历史文章爬虫...
- Web开发(初级)- 常用css总结,方便查询
- python期权价格计算器_使用Python自带GUI tkinter编写一个期权价格计算器
- 微信小程序毕业设计 驾校考试小程序毕设开题报告
- 苹果应用提审与NAT64
- 《疯狂Python讲义》数字转人民币大写完整代码
- 春季养肝注意三个行为,做对了一年少生病
- android测试内存的软件下载,AndroBench p10内存门app下载
- labelme_json_to_dataset报错: ModuleNotFoundError: No module named ‘labelme
- 使用Python编写程序,输入一个大于 2 的自然数,然后输出小于该数字的所有素数组成的集合。