1.自定义一个注解,通过将自定义的注解添加到对应的方法上,可实现对该方法进行增强操作

package com.basis.aspect;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface BasisLogAnnotation {
}

2.切面-环绕通知

我的需求是:在调用接口前有一些操作,在接口调用之后,再做一些操作,具体使用什么通知,看个人具体的业务需求

package com.basis.aspect;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;@Aspect
@Component
public class ServiceLogAspect {Logger logger = LoggerFactory.getLogger(ServiceLogAspect.class);/*** 环绕通知*/@Around(value = "@annotation(basisLogAnnotation)")public Object demoAop(ProceedingJoinPoint proceedingJoinPoint, final BasisLogAnnotation basisLogAnnotation) throws Throwable {logger.debug("执行前:");Object object = proceedingJoinPoint.proceed();  //执行连接点方法,object:方法返回值logger.debug("执行后:");// 类名String className = proceedingJoinPoint.getTarget().getClass().getName();//方法名String methodName = proceedingJoinPoint.getSignature().getName();//参数(我这里是对象,具体根据个人的参数类型来强转)BasisUser basisUser = (BasisUser)proceedingJoinPoint.getArgs()[0];return object;}}

@Aspect aop切面获取请求接口类名、方法名、及参数相关推荐

  1. springboot之aop切面获取请求

    springboot之aop切面获取请求 项目场景: 在学习springboot的博客开发中,通过aop切面,对博客中的操作进行记录 问题描述: 问题: 在切面方法中,无法获取请求的参数和类名,方法, ...

  2. c# 获取方法所在的命名空间 类名 方法名

    平时我们在记录日志的时候难免会需要直接记录当前方法的路径,以便查找,但是每次都输入方法名称非常的繁琐,同时如果修改了方法名称也要去手动修改日志内容,真的是劳命伤财啊,所以有了如下方法则可解决我们的大难 ...

  3. 获取iOS任意线程调用堆栈(三)符号化理论:从Mach-o结构分析类名方法名

    下面来讲讲如何从Mach-o文件中分析出类名和方法名,也让我们了解下class-dump的原理. Mach-o结构有两个节:__objc_classname 和 __objc_methname 其中就 ...

  4. CI框架获取控制器名和方法名

    CI获取控制器名和方法名 第一种方法: 即使有__CLASS__,__FUNCTION__魔术变量,但是在父类控制器,或者在model中,只能获取当前类的类名和方法名. 第二种方法: $this-&g ...

  5. java 获取 正在执行的方法名

    //获取调用该方法的方法名....String method = Thread.currentThread().getStackTrace()[2].getMethodName();//获取正在执行方 ...

  6. com.netflix.hystrix.exception.HystrixRuntimeException: 类名#方法名(String,String) failed错误引起的一连串思考

    这个错误是在看网上的视频资料学习时产生的,本来以为只是简单的远程调用方法错误,在找错误的过程中发现了不只是这个错误 首先 对于该错误本身是因为远程调用出错,我在认真检查了代码之后发现远程调用代码并没有 ...

  7. aop切面获取方法参数,注解,及判断是否成功执行

    项目中第一次用到自定义注解,这里简单记一下,以方便以后忘了来回顾一下 自定义注解 /*** 修改方法日志注解*/ @Target(ElementType.METHOD) @Documented @Re ...

  8. AOP切面获取参数的一个小技巧

    一般来说,我们的参数,都是通过json传递的,那么这个问题就转化成了,从json中获取指定字符串的问题. OK,这个问题就简单了.如下: public static void main(String[ ...

  9. 报错解决No implementation found for int包名+类名+方法名

    引言:今天在导入sdk测试接口的时候遇到问题,在网上找了很多的答案,试了很多遍,最后终于解决了,总结来说就是so文件里面的路径要和aar里面的jni接口的包名一致. 节约时间请直接看最后一张图 No ...

最新文章

  1. 全国默哀 网站首页都要变成灰色的简单解决办法
  2. 进程间通信(4) 匿名管道
  3. 小白的算法初识课堂(part7)--狄克斯特拉算法
  4. 开源词法分析工具LAC重大升级!打造属于自己的个性化分词器!
  5. 利用nginx集群式部署服务器中,数据同步问题
  6. extjs2.0 ie8 下拉树_extjs2下拉树选项框comboxWithTree(支持异步加载子节点)
  7. Server 2008 R2远程桌面授权
  8. 【061】百度迁徙-用地图大数据演绎国人的迁徙史诗
  9. 成都理工大学乐千桤java考试,成都理工大学方案.PDF
  10. 使用WINPE制作U盘启动
  11. 360云盘怎么用连接服务器异常,360云盘突然登录不上去了怎么回事 网络没问题但是360云盘登不上去怎么办...
  12. docker部署time machine服务
  13. 《蜂鸟摄影学院单反摄影宝典》读书笔记
  14. Maple: 矩阵转置
  15. 【读书笔记】《云计算关键领域安全指南V4.0》(一)
  16. H264视频压缩编码标准(一)
  17. oracle 指定账套建表,FAQ-EAS账套备份恢复方法(oracle)
  18. 电路课组(一)电路原理 Part 0 电路仿真(1)Multisim基本功能
  19. 北京大学软件与微电子学院学习经验文章集78篇和1个专题
  20. 自动驾驶之点云与图像融合综述

热门文章

  1. 【论文阅读】Blur Calibration for Depth from Defocus
  2. AD8226+AD5293
  3. 1024 科学计数法 (20 分) 完全解析(C++详细思路)
  4. R语言错误 --> Error in plot.new() : figure margins too large
  5. emg采集精度_EMG
  6. cmd命令行下怎样切换目录
  7. echarts迁徙效果
  8. IE无法上网,360浏览器部分网站无法打开
  9. 大学生mysql实训心得_大学生实训心得体会范文(精选3篇)
  10. Lightroom导入JPG格式的图像