当前位置:网站首页 > 产品管理 > 正文

springaop实现日志管理(spring aop实现日志)



      在现实的上线中我们经常会遇到系统出现异常或者问题。这个时候就马上打开CRT或者SSH连上服务器拿日子来分析。受网络的各种限制。于是我们就想为什么不能直接在管理后台查看报错的信息呢。于是日志管理就出现了。

      很早之前就有同学问我,如何用spring aop来实现日志管理的问题,现在个人觉得做日志管理最好的是Aop,当然有的人也喜欢用拦截器。

      Aop有的人说拦截不到Controller。有的人说想拦AnnotationMethodHandlerAdapter截到Controller必须得拦截org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter。首先Aop可以拦截到Controller的,这个是毋容置疑的;其次须拦截AnnotationMethodHandlerAdapter也不是必须的。Aop之所以有的人说拦截不到Controller是因为Controller被jdk代理了。我们只要把它交给cglib代理就可以了。

       废话不多说了,下面开始上代码:

 

第一步:编写两个注解

1、拦截controller的注解

 2、拦截service的注解

 

第二步:编写切点类

 

第三步:将controller的代理权交给cglib。那么此时需要在spring的配置文件中添加如下代码:

 切记,如果你使用的是spring mvc的话,这句一定要写在springmvc的配置文件中,否则会似的@AspectJ不起作用的,我是深受其害的一位。

 

第四步:开始使用注解

在controller或service的方法上添加注解,示例如下:

 

最终效果可见下面截图:

 

问题1:在启动tomcat的时候,报org.xml.sax.SAXParseException; lineNumber: 23; columnNumber: 53; 元素 "aop:aspectj-autoproxy" 的前缀 "aop" 未绑定

 

通过查询文档发现,在springmvc配置文件中,我们不仅仅要引入Aop的名称空间,还要在xsi:schemaLocation中加入aop的xsd文件 。

 

问题2:AspectJ 出现错误::0 can't find referenced pointcut

原因是我用的jdk7与aspectjrt.jar包不兼容,解决方法是更换jar包。

当环境为:

jdk 1.7, spring version is 3.0+, 如果使用aspectjrt-1.6.2 and aspectjweaver-1.6.2这个版本,就会出现上述错误,将aspectj and aspectjweaver 版本改为1.7.3 or more,问题得到解决。

 

补充:上面是基于注解的方式进行的aop配置,但有些朋友更喜欢使用xml配置文件的方式,比如我,所以下面是部分xml的配置,如有问题,还请大神们指教。

1、首先,将切面类中的SystemLogAspect中的注解去掉。

 2、xml配置文件代码如下(该配置仍然要方在springmvc的配置文件中,因为仍然有部分使用了注解)

 

其他的还跟上面的方式一样。这样同样可以正常使用,谢谢。

到此这篇springaop实现日志管理(spring aop实现日志)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 工具类产品有哪些(工具类产品有哪些?)2025-08-06 22:54:09
  • 产品经理必看书(产品经理必看书籍推荐)2025-08-06 22:54:09
  • 文件管理器无法访问data(文件管理器无法打开)2025-08-06 22:54:09
  • 进程管理器快捷键命令是什么(进程管理器的快捷键)2025-08-06 22:54:09
  • 产品经理资格证(产品经理资格证书考试)2025-08-06 22:54:09
  • 在哪里设置获取位置的权限(在哪里设置获取位置的权限管理)2025-08-06 22:54:09
  • 产品经理必读十本书(产品经理必读书单)2025-08-06 22:54:09
  • 产品经理入门基础知识有哪些(产品经理入门基础知识有哪些内容)2025-08-06 22:54:09
  • windows怎么打开任务管理器快捷键(windows怎么打开任务管理器快捷键命令)2025-08-06 22:54:09
  • 日志管理工具(日志管理app)2025-08-06 22:54:09
  • 全屏图片