关于SpringBoot及JPA用法本文再也不过多讨论,下面是引入的jar:mysql
保存日志的实体类:web
保存异常的实体类:sql
接下来咱们定义一个Operation注解,用于声明在方法上描述此方法执行了什么操做:工具
而后编写一个AOP切面类,因为使用的SpringBoot只要保证在Application子目录之下就被会自动扫描,因此只须要注解声明便可,并不须要额外配置测试
定义请求日志切入点:debug
编写方法的前置通知:代理
编写方法的返回通知:日志
编写方法的异常通知:get
获取请求IPio
获取请求方式
获取切入点的参数信息
编写一个简易Controoler,用于测试请求日志记录:
启动SpringBoot以后,访问测试请求日志的URL,查看请求日志表记录,能够看到日志已成功记录:
接下来把测试请求日志的Controoler修改成抛出一个异常,测试异常记录:
而后从新启动SpringBoot,再次访问刚才的URL,能够看到产生了异常:
再次查看请求日志表,发现仍是一条记录,说明异常通知执行后并不会执行返回通知,这正是咱们指望的结果:
而后咱们再查看异常记录表,发现已经将异常记录:
至此,SpringBoot AOP记录请求日志和异常日志完成