spring aop实现日志管理
来源:互联网 发布:cities skylines mac 编辑:程序博客网 时间:2024/06/05 23:42
可以自定义注解,给Controller和service对象加上说明,比如这个方法是查询商品的;使用aop拦截Controller和service对象,通过反射创建目标方法的method对象,并获得该方法的注解说明,把说明封装到日志对象里;当然也获得方法名,还可以获得登陆的用户信息,把他们都封装日志对象里,日志对象可以存放到数据库里,也可以存到本地;这样就可以根据日志知道谁调用了那些方法,这些方法是干什么的;也可以使用异常曾强,捕获到哪个方法出错了,错误信息是啥;
首先我们为什么需要做日志管理,在现实的上线中我们经常会遇到系统出现异常或者问题。这个时候就马上打开CRT或者SSH连上服务器拿日子来分析。受网络的各种限制。于是我们就想为什么不能直接在管理后台查看报错的信息呢。于是日志管理就出现了。
其次个人觉得做日志管理最好的是Aop,有的人也喜欢用拦截器。都可以,在此我重点介绍我的实现方式。
Aop有的人说拦截不到Controller。有的人说想拦AnnotationMethodHandlerAdapter截到Controller必须得拦截org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter。
首先Aop可以拦截到Controller的,这个是毋容置疑的其次须拦截AnnotationMethodHandlerAdapter也不是必须的。最起码我没有验证成功过这个。我的Spring版本是4.0.3。
Aop之所以有的人说拦截不到Controller是因为Controller被jdk代理了。我们只要把它交给cglib代理就可以了。
第一步定义两个注解:
第三步把Controller的代理权交给cglib
在实例化ApplicationContext的时候需要加上
- <!-- 启动对@AspectJ注解的支持 -->
- <aop:aspectj-autoproxy/>
在调用Controller的时候AOP发挥作用所以在SpringMVC的配置文件里加上
- <!--通知spring使用cglib而不是jdk的来生成代理方法 AOP可以拦截到Controller->
- <aop:aspectj-autoproxy proxy-target-class="true" />
第四步使用
Controller层的使用
Java代码
Service层的使用
效果图
用户操作:
异常
- Spring AOP实现日志管理
- spring aop实现日志管理
- 利用spring AOP注解实现日志管理
- Spring AOP使用@AspectJ实现日志管理
- spring aop 拦截实现日志管理
- Spring的AOP实现日志管理操作
- spring自定义注解实现AOP日志管理
- Spring Aop 日志管理
- Spring AOP 日志管理
- Spring AOP 日志管理
- Spring AOP 日志管理
- spring AOP日志管理
- Spring AOP 日志管理
- Spring Aop 日志管理
- Spring AOP实现后台管理系统日志管理
- Spring AOP实现后台管理系统日志管理
- AOP实现日志管理
- Spring AOP 自定义注解方式实现实现日志管理
- Java与数据结构(五) 二叉树
- 【量化小讲堂-Python&Pandas系列05】极简方法将日线数据转为周线、月线或其他周期
- mysql 命令行 查看版本命令
- 内核线程、轻量级进程、用户线程三种线程概念解惑(线程≠轻量级进程)
- Kafka学习笔记
- spring aop实现日志管理
- Springboot+atomikos+jta实现分布式事务统一管理
- 用GDB调试程序(四)
- 1377 数组奇偶对调排序 C语言
- js获取left值的方法
- 接口练习 2
- c语言总结
- 信息增益在决策树中的应用
- 圆圈中最后剩下的数字