快速业务通道

spring aop面向切面编程:如何来做一个强大的日志记录功能 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

spring aop面向切面编程:如何来做一个强大的日志记录功能

时间:2011-01-27 巴士飞扬

这个东西怎么做:spring aop 面向切面编程 如何来做一个强大的日志记录功能模板;

昨天经理把这个任务交给我,让我为公司现在的项目加上一个详细的日志记录功能模板,对所有的操作,至少是增删改运作进行一个记录,其要记录操作者,以及执行的方法,IP,以及操作的方法的参数.

我以前做过类似的功能,不过是在filter里做的,通过filter来检查action请求,记录请求中的参数及action名字.但是今天公司这个是要求用spring aop来做,这样就可以在spring里对要进行的日志记录方法进行一个配置.而且这样也就可以无缝集成到现有的系统中去了.

不过,很郁闷的是,我还没用这样做过,或者类似的功能.

==========================

哈哈,很爽,居然让我做好了.

其实也很简单,使用AOP的@AspectJ来做就可以了,方法步骤如下:

第一:>>在spring的配置文件里增加以下配置

<!-- 支持 @AspectJ 标记-->    <aop:aspectj-autoproxy />

如果发现插入后,eclipse提示这行有错误,那可能是你的spring配置有问题,你对照一下我的spring里的beans的头:

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:aop="http://www.springframework.org/schema/aop"    xmlns:tx="http://www.springframework.org/schema/tx"    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"    default-autowire="byName" default-lazy-init="true">

关于spring和AOP及@aspectj配置可以参考一下我收藏的以下文章

基于@AspectJ配置Spring AOP之一==>http://www.busfly.cn/csdn/post/700.html

Spring 2.0的新特性之@AspectJ==>http://www.busfly.cn/csdn/post/699.html

AspectJ如何实现AOP==>http://www.busfly.cn/csdn/post/698.html

Spring 2.0中的AOP实现-aspectj-Advice==>http://www.busfly.cn/csdn/post/693.html

spring aop面向切面编程:如何来做一个强大的日志记录功能(2)

时间:2011-01-27 巴士飞扬

第二:>>配置一下@AspectJ 的bean,这个Bean就是一个普通的java对象bean,按照普通的bean来配置就行了,我的这个处理切面的bean配置如下 (包含了第一步的配置):

<!-- 支持 @AspectJ 标记-->    <aop:aspectj-autoproxy />    <bean id="logAspect" class="com.hs.dolphin.sys.LogAspect">      <!-- 配置要记录日志的对象及属性(要监控的方法的第一个参数) 格式: 对象类名(带路径全称).属性GET方法名 -->      <property name="obj_method">        <map>          <entry key="default">            <map><!-- 默认值,如果没有指定对象就执行这个 -->              <entry key="getId"><!-- 属性的get方法名字 -->                <value>id</value><!-- 属性名字 -->   

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号