zkddkz2010 2015-06-25 02:21 采纳率: 0%
浏览 584

aop aop aop aop aop aop


aop:config







/aop:aspect
/aop:config

package com.paic.mercury.vigilant.aop;

import org.apache.commons.logging.Log;
import org.aspectj.lang.ProceedingJoinPoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.paic.mercury.vigilant.entity.UIResult;
import com.paic.mercury.vigilant.secure.ResourceUser;
import com.paic.mercury.vigilant.utils.ServletUtil;

public class ControllerTracer {
// implements AfterReturningAdvice {

private static Logger LOG = LoggerFactory.getLogger(ControllerTracer.class);

// @Override
// public void afterReturning(Object arg0, Method arg1, Object[] arg2,
// Object arg3) throws Throwable {
// System.out.println("通常情况下睡觉之前要脱衣服!");
// }

public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
    // System.out.println("通常情况下睡觉之前要脱衣服!");
    Object retVal = pjp.proceed();

    // System.out.println("log Ending method: "
    // + pjp.getTarget().getClass().getName() + " . "
    // + pjp.getSignature().getName());
    //
    //
    //
    // LOG.info("args:" + args);
    // LOG.info("kind:" + pjp.getKind());
    // LOG.info("source location:" + pjp.getSourceLocation());
    // LOG.info("target:" + pjp.getTarget().toString());
    //
    //
    // LOG.info("USER:"+);
    // LOG.info("result:" + retVal.toString());

    String userName = "NULL";
    Object user = ServletUtil.getResourceUser();
    if (user != null && user instanceof ResourceUser) {
        userName = ((ResourceUser) user).getUsername();
    }

    StringBuffer sb = new StringBuffer();
    sb.append("User(").append(userName).append(") invoke ")
            .append(pjp.getTarget().getClass().getSimpleName()).append(".")
            .append(pjp.getSignature().getName());

    if (retVal instanceof UIResult) {
        UIResult result = (UIResult) retVal;
        if (!result.isFlag()) {
            sb.append(" ERROR! code:").append(result.getErrorCode())
                    .append(" message:").append(result.getMessage());
        }
    }
    LOG.info(sb.toString());

    // if (LOG.isDebugEnabled()) {
    Object[] args = pjp.getArgs();
    // latest arg is request.
    if (args != null && args.length > 1) {
        LOG.info("PRINTING ARGS. ===================");
        StringBuffer argSb = new StringBuffer();
        for (int index = 0; index < args.length - 1; index++) {
            Object arg = args[index];
            if (arg != null) {
                argSb.append("arg type:")
                        .append(args[index].getClass().getSimpleName())
                        .append(" value:").append(args[index] + "");
            }
            LOG.info(argSb.toString());
        }
        LOG.info("PRINTING ARGS END. ==============");
    }
    // }

    return retVal;
}
// @Override
// public void before(Method arg0, Object[] arg1, Object arg2)
// throws Throwable {
// System.out.println("起床后要先穿衣服!");
// }

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
    • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序