2019独角兽企业重金招聘Python工程师标准>>>

###1.日志切面

package com.readygo.zbhealth.common;import java.util.Arrays;
import java.util.List;import org.aspectj.lang.ProceedingJoinPoint;public class LoggingAspect {public Object Around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable{Object result = null;String methodName = proceedingJoinPoint.getSignature().getName();try {System.out.println("请求路径:/"+methodName+",请求参数:");List<Object> list = Arrays.asList(proceedingJoinPoint.getArgs());switch (methodName) {case "getSpecialist":System.out.println("searcheContent:"+list.get(0)+"\n"+"pageNum:"+list.get(1)+"\n"+"lastTime:"+list.get(2)+"\n"+"typeId:"+list.get(3)+"\n");break;case "getQuestionDetail":System.out.println("questionId:"+list.get(0)+"\n"+"userId:"+list.get(1)+"\n");break;case "getSpecialistDetail":System.out.println("specialistId:"+list.get(0)+"\n"+"userId:"+list.get(1)+"\n");break; case "getQuestionList":System.out.println("userId:"+list.get(0)+"\n"+"flag:"+list.get(1)+"\n");break;default:break;}result = proceedingJoinPoint.proceed();} catch (Exception e) {System.out.println("请检查参数个数");e.printStackTrace();}return result;}}

###2.xml配置文件

    <bean id="loggingAspect" class="com.readygo.zbhealth.common.LoggingAspect"></bean><aop:config><aop:pointcut expression="execution(* com.readygo.zbhealth.controller.ThirdPartController.*(..))" id="aopPointcut"/><aop:aspect ref="loggingAspect"><aop:around method="Around" pointcut-ref="aopPointcut"/></aop:aspect></aop:config>

###3.controller文件

@RestController
public class ThirdPartController {@Autowiredprivate ThirdPartService thirdPartService;/*** 获取专家列表* @param searcheContent* @param pageNum* @param lastTime* @param typeId* @return 专家列表*/@RequestMapping(value = "/getSpecialist", method=RequestMethod.POST)public ResultObject getSpecialist(@RequestParam("searcheContent") String searcheContent,@RequestParam("pageNum") String pageNum,@RequestParam("lastTime") String lastTime,@RequestParam("typeId") String typeId){ResultObject resultObject = new ResultObject();try {resultObject = thirdPartService.getSpecialist(searcheContent, pageNum, lastTime, typeId);} catch (Exception e) {resultObject = Utils.resultCatchInfo(new Object());e.printStackTrace();}return resultObject;}
}

###4.验证结果

请求路径:/getSpecialist,请求参数:
searcheContent:搜索内容
pageNum:1
lastTime:20160914112200
typeId:1000000000

###5.功能
该日志切面配置在controller层中的每个方法上,功能是打印出 请求路径 与 请求参数。

转载于:https://my.oschina.net/u/2312022/blog/746656

spring --aop(日志记录)在工程中实际使用相关推荐

  1. Spring AOP 切面记录操作日志

    前言 实际业务,有时候需要记录服务的操作日志,我们可以利用SpringAOP 切面来拦截记录用户操作:用户使用session或者前端传值都可以. 1.创建日志记录接口 首先我们得有一个接口,这个接口可 ...

  2. java使用动态代理来实现AOP(日志记录)的实例代码

    AOP(面向方面)的思想,就是把项目共同的那部分功能分离开来,比如日志记录,避免在业务逻辑里面夹杂着跟业务逻辑无关的代码 id="cproIframe_u1892994_2" wi ...

  3. Spring Aop 日志管理及配置文件的详细配置

    Spring 带给我们的另一个好处就是让我们可以"专心做事",下面我们来看下面一个例子: public void doSameSomesing(int age,String nam ...

  4. Spring AOP实践--记录类方法执行时间

    网上有许多关于记录方法执行时间的帖子,但是看了一下,基本上操作不方便,或者都是开发测试性质的不太适用,我在这里做了完善,直接内置到项目中,使用的时候只需要在方法上添加注解@MethodLog即可,非常 ...

  5. java aop日志记录_AOP实现日志记录功能

    场景:整个系统的DML操作需要记录日志 记录内容:1 操作人 2 操作时间 3 操作类型(登录 新增 修改 删除) 4 操作描述  5 详细请求数据(varchar2()) 6 操作IP  ==> ...

  6. PostSharp AOP编程:1.基于PostSharp的AOP日志记录和异常捕捉【附带源码】

    AOP(基于切面编程):它是对业务逻辑的分离,使各个业务直接的耦合变低,比如在传统的OOP编程中将日志记录.异常处理.权限管理等方面剥离出来.在今后的维护过程中,对其改变日志记录.异常处理.权限管理方 ...

  7. springboot日志写入mysql_44. Spring Boot日志记录SLF4J【从零开始学Spring Boot】

    学院中有Spring Boot相关的课程!点击「阅读原文」进行查看! SpringSecurity5.0视频:http://t.cn/A6ZadMBe Sharding-JDBC分库分表实战: 在开发 ...

  8. spring aop如何在切面类中获取切入点相关方法的参数、方法名、返回值、异常等信息

    aop思想可以很好的帮助我们实现代码的解耦,比如我们之前提到的,将日志代码与业务层代码完全独立,通过spring aop的代理类进行整合.在切面类中,我们也能够通过spring提供的接口,很好的获取原 ...

  9. Spring AOP 日志管理

    Spring AOP 1.对AOP的理解 --  分工来做各个部分,运行时候整合的思想 2.理解 面向过程,面向对象,面向切面 的思想 1)面向过程:房间装修时,准备装一个灯,就拉一根电线,连接灯. ...

最新文章

  1. CentOS6.5-源码编译安装最新MySQL5.7.10
  2. 为什么我的开发方式如此愚蠢?
  3. Java8对List<Integer>的求和
  4. python整体设计目标_Python 入門語法和類型(学习)
  5. esb接口测试_接口测试用例.docx
  6. 设置CMD窗口为UTF-8编码
  7. matlab-lsqcurvefit函数 初始值选取
  8. python3爬虫必学Xpath,快速使用lxml.etree
  9. Java基础面试题整理
  10. Linux解决忘记密码的方法
  11. linux终端怎么设置monaco,ubuntu16.04安装monaco字体
  12. Navicat备份数据库和还原数据库详解
  13. IBM SPSS Statistics频数分析教学
  14. Lintcode A+B问题
  15. docker更换国内镜像(网易docker镜像)解决docker下载镜像慢问题
  16. 网红神盾七号重疾险再创新高,自带住院津贴,还能赔两次!
  17. ICC 图文学习——LAB4:CTS 时钟树综合
  18. Linux下存储多路径软件MultiPath源码分析
  19. 转:Yahoo邮箱POP、SMTP服务器设置详解
  20. 我的周刊(第009期)

热门文章

  1. ret2shellcdoe
  2. 汇编程序中,字符数据和ASCII的对应关系
  3. linux查看网卡硬件 lsw,linux系统配置管理小测试试卷答案
  4. LeetCode 20. 有效的括号 golang(三)
  5. Effective C++学习第十天
  6. 数据可视化【十四】交互式过滤地区分布图
  7. TCP第四次挥手为什么要等待2MSL
  8. Linux下shell脚本指定程序运行时长
  9. 函数mkdir、mkdirat和emdir
  10. 算法题+JVM+自定义View,详细的Android学习指南