求spring aop日志管理的源码,主要是能在spring aop里面能取得用户信息,自己做了一个老出错,困扰了好久了,发帖也没人帮助解决,所以只能厚着脸皮要了,本人是学生,没有用于商业用途,哪位朋友能给我一份吗?

解决方案 »

  1.   

    JoinPoint当作参数传入切面的方法应该可以拿到..
      

  2.   

    我是用filter threadlocal取得session 如何在aop里面取 可是老报空,发帖了也没人知道原因,自己又没办法测试,电脑配置太低,所以有做过的朋友 能发份给我吗? 
      

  3.   

    你是不是写了一个aop 在里面拿不到session 的用户信息是这样吗如果是,那么传过去,用aop 拦就可以了吗
    不传得不到滴哦
      

  4.   

    http://book.csdn.net/bookfiles/250/10025011349.shtml
      

  5.   

    之前的帖子在这里http://topic.csdn.net/u/20100109/12/84806d39-0a1c-4dbe-ad66-61f44dd9aa0a.html
      

  6.   

    http://book.csdn.net/bookfiles/250/10025011349.shtml这里面应该可以找到你要的答案  去看看吧
      

  7.   


    拦截动作的aop日志是非常经典的应用,4星上将。
      

  8.   

    我的配置很简单:
    <aop:aspectj-autoproxy/>
    <bean id="logbean" class="com.shop.spring.LogAOP"/>
    在AOP里面有用到注解,应该是没有问题的,还缺什么吗
      

  9.   

    你finnaly里面不是清空了吗所以只有第一次拦截方法会有信息,在第二次进入拦截方法时,就没有把finnaly删了吧
    看是这个意思不
      

  10.   


    不好意思 呼
    没看清楚,以为是一个Servlet,没看到是过滤器
    这样是有必要清
    代码没测试,等下有时间测试下,
      

  11.   


    如果在方法的开始和结束整个日志,那方法中呢?如果方法中没有日志的话,那就完全失去了日志的意义!另外,所有介绍 AOP 的地方都以日志作为示例,其实这是一个很牵强的示例,没有人会只在方法的开始和结束,或者是异常三处整个日志。日志在应用程序中是非常非常重要的,好的日志信息能有助于我们在程序出现 BUG 时能快速进行定位,并能找出其中的原因,但是很多的开发人员很不重视日志。我发觉很多很多的开发人员不会使用日志,其所称的日志一般都是这样的:public User processUser(User user) {    
        log.debug("processUser() start...");
        try {
            processUser 代码
        } catch (Exception e) {
            log.error("processUser() failed.", e);
        }
        log.debug("processUser() end.");
    }这样的日志写了跟没写一样,没有丝毫的用处!
      

  12.   

    对于 DEBUG 级别的日志来说,是越多越好,越详细越好。另外建议使用 slf4j 日志框架,其中的 log4j 的适配器。slf4j 可以使用可变参数,我们不需要在代码中出现:if(log.isDebugEnabled()) {
        log.debug("user: " + user);
    }样的代码。因为 log.debug 中涉及字符串连接操作,大家都知道字符串是不可变对象,内部会使用 StringBuffer 或者 StringBuilder 进行处是的。如果我们把日志调高到 INFO 的话,那些 log.debug 方法参数同样会被运算出来,但是这种运算是毫无意义的,因此我们会在外面加上:if(log.isDebugEnabled()) 这个判断。如果使用变参,由于不涉及字符串连接操作,因此就不需要这样的判断。public User processUser(User user) {    
        log.debug("processUser() start, user: {}" + user);
        try {
            processUser 代码      // 这里应加入大量的 log.debug 日志
            log.info("......");   // 处理完后的结果应使用 INFO 级别,内容应为处理后的 User 对象的数据
        } catch (Exception e) {
            log.error("processUser() failed.", e);  // 异常时应使用 WARN 以上的级别,如果还有其他的方法调用上下文信息应一起写入日志  
        }
        log.debug("processUser() end.");    // 这个日志没有丝毫用处,可以删除 
    }以上的 User 必须实现 toString() 方法,其中应包自身全部或者主要的字段名和字段值。
      

  13.   

    log.debug("processUser() start, user: {}" + user);改为:log.debug("processUser() start, user: {}"user);
      

  14.   

    你的方法和spring security很类似,建议可以去看源码,我这边有分自己做的,不过功能很简单,可以给你