1.   @Async
  2. @AfterReturning(value ="execution(public * com.zhx.recharge.service.RechargeService.buildOrder(..))", returning = "result")
  3. public void buildOrder(JoinPoint joinPoint, Object result) throws Throwable {
  4. log.info("*****************************************");
  5. log.info("*****************************************");
  6. log.info("*****************************************");
  7. //保存所有请求参数,用于输出到日志中
  8. // Map allParams = new HashMap();
  9. /*Object[] paramValues = joinPoint.getArgs();
  10. String[] paramNames = ((CodeSignature) joinPoint.getSignature()).getParameterNames();
  11. for(int i=0;i<paramNames.length;i++){
  12. if (paramValues[i] instanceof Map<?, ?>) {
  13. //提取方法中的MAP参数,用于记录进日志中
  14. @SuppressWarnings("unchecked")
  15. Map<String, Object> map = (Map<String, Object>) paramValues[i];
  16. allParams.putAll(map);
  17. }else {
  18. allParams.put(paramNames[i],paramValues[i]);
  19. }
  20. }*/
  21. Map<String, Object> allParams = (Map<String, Object>) result;
  22. log.info("this is object={}",allParams);
  23. String goods_id = String.valueOf(allParams.get("goods_id"));
  24. String order_no = String.valueOf(allParams.get("order_no"));
  25. String user_id = String.valueOf(allParams.get("user_id"));
  26. String uid = String.valueOf(allParams.get("uid"));
  27. String buy_count = String.valueOf(allParams.get("buy_count"));
  28. String unitprice= String.valueOf(allParams.get("unitprice"));
  29. String amount= String.valueOf(allParams.get("amount"));
  30. String amount_realpay= String.valueOf(allParams.get("amount_realpay"));
  31. String paygate= String.valueOf(allParams.get("paygate"));
  32. String goods_priceid= String.valueOf(allParams.get("goods_priceid"));
  33. String area= String.valueOf(allParams.get("area"));
  34. String os= String.valueOf(allParams.get("os"));
  35. String user_ip= String.valueOf(allParams.get("user_ip"));
  36. String deviceid = String.valueOf(allParams.get("deviceid"));
  37. String goldcoin = String.valueOf(allParams.get("goldcoin"));
  38. String flower = String.valueOf(allParams.get("flower"));
  39. coreWebOrderApi.buildOrder(goods_id,order_no,user_id,uid,buy_count,unitprice,amount,amount_realpay,paygate,goods_priceid,area,os,user_ip,deviceid,goldcoin,flower);
  40. log.info("success");
  41. log.info("*****************************************");
  42. log.info("*****************************************");
  43. }

AspectJ(AOP)切面获取参数名称和参数的更多相关文章

  1. Spring AOP获取拦截方法的参数名称跟参数值

    注意:这种方式需要JDK1.8版本支持 开始:http://www.cnblogs.com/wing7319/p/9592184.html 1.aop配置: <aop:aspectj-autop ...

  2. spring boot: filter/interceptor/aop在获取request/method参数上的区别(spring boot 2.3.1)

    一,filter/interceptor/aop在获取参数上有什么区别? 1,filter可以修改HttpServletRequest的参数(doFilter方法的功能), interceptor/a ...

  3. Java开发学习(十八)----AOP通知获取数据(参数、返回值、异常)

    前面的博客我们写AOP仅仅是在原始方法前后追加一些操作,接下来我们要说说AOP中数据相关的内容,我们将从获取参数.获取返回值和获取异常三个方面来研究切入点的相关信息. 前面我们介绍通知类型的时候总共讲 ...

  4. Spring AOP切面的时候参数的传递

    Spring AOP切面的时候参数的传递 Xml: <?xml version="1.0" encoding="UTF-8"?> <beans ...

  5. JavaScript函数之实际参数对象(arguments) / callee属性 / caller属性 / 递归调用 / 获取函数名称的方法

    函数的作用域:调用对象 JavaScript中函数的主体是在局部作用域中执行的,该作用域不同于全局作用域.这个新的作用域是通过将调用对象添加到作用域链的头部而创建的(没怎么理解这句话,有理解的亲可以留 ...

  6. Java获取函数参数名称

    原理 编译之后的class文件默认是不带有参数名称信息的,使用 IDE 时,反编译jar包得到的源代码函数参数名称是 arg0,arg1......这种形式,这是因为编译 jar 包的时候没有把符号表 ...

  7. C# -- 等待异步操作执行完成的方式 C# -- 使用委托 delegate 执行异步操作 JavaScript -- 原型:prototype的使用 DBHelper类连接数据库 MVC View中获取action、controller、area名称、参数

    C# -- 等待异步操作执行完成的方式 C# -- 等待异步操作执行完成的方式 1. 等待异步操作的完成,代码实现: class Program { static void Main(string[] ...

  8. java 反射借助 asm 获取参数名称最优雅简单的方式

    背景说明 最近写反射相关的代码,想获取对应的参数名称,却发现没有特别好的方式. jdk7 及其以前,是无法通过反射获取参数名称的. jdk8 可以获取,但是要求指定 -parameter 启动参数,限 ...

  9. js获取链接?后边的参数名称或者值

    1.获取后边的参数名称<script type="text/javascript"> var url = location.search; //获取url中" ...

随机推荐

  1. Oracle Package的全局变量与Session

    Oracle Package的全局变量与Session2012-07-26 aaie_ 阅 3595 转 10简单讲,同一个session下pageckage中的全局变量时公共的,会导致冲突.以下是一 ...

  2. 布思算法——Java实现

    前面一篇提到二进制队列实现了 N位二进制的补码,那么我们来实现布思算法. 关于BinaryQueue:https://www.cnblogs.com/XT-xutao/p/10050518.html ...

  3. GZip使用

    class Program { static void Main(string[] args) { //Trace.Listeners.Clear(); //Trace.Listeners.Add(n ...

  4. Confluence 6 的小型文字档案(Cookies)

    这个页面列出了存储在 Confluence 用户浏览器中的小型文字档案(Cookies)内容.这些内容是由 Confluence 自己创建的.这个页面不会列出由 Confluence 安装的第三方插件 ...

  5. 基于 Confluence 6 数据中心的 SAML 单点登录设置 SSL/TLS

    请确定 SAML 授权是安全和私有的,你需要在你的应用程序中设置SSL/TLS. 请参考in the application. See Running Confluence Over SSL or H ...

  6. jsp 标签文件

    一. tag file 简介 tag file从两个方面简化了自定义标签的开发.首 先,tag file无须提前编译,直到第一次被调用才会编 译.除此之外,仅仅使用JSP语法就可以完成标签的扩 展定义 ...

  7. eclipse php pdt插件安装

    安装动态语言工具包: help->new install software->work with 框输入 http://download.eclipse.org/technology/dl ...

  8. PAT Basic 1069. 微博转发抽奖(20)

    小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行给出三个正整数M(<= 1000).N ...

  9. Knockout示例:User数据CRUD

    模拟数据user.json. { "page": 0, "rows": 0, "total": 161, "isSuccess&q ...

  10. XAML绑定到资源文件字符串时失败

    参考:https://stackoverflow.com/questions/19586401/error-in-binding-resource-string-with-a-view-in-wpf ...