spring AOP计算service运行时间

/**
 * 
 */
package com.dtm.log;


import java.net.InetAddress;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
import com.dtm.model.Sys_User;
import com.opensymphony.xwork2.ActionContext;


/**
 * * AOP注解方法实现日志管理 利用spring AOP 切面技术记录日志 定义切面类(这个是切面类和切入点整合在一起的),这种情况是共享切入点情况;
 * 
 * @author jianghong
 * 
 * @createDate 2014年7月12日 上午10:24:46
 * 
 * @file LogAopAction.java
 * 
 * @pakage com.dtm.log
 * 
 * @email jiangjianhua123@qq.com
 * 
 * @version 0.1
 * 
 */
@Aspect
// 该注解标示该类为切面类
@Component
public class LogAopAction {


@Around("execution(* com.dtm.*.service.impl.*.* (..))")
public Object logAll(ProceedingJoinPoint point) {
Object result = null;
// 执行方法名
String methodName = point.getSignature().getName();
String className = point.getTarget().getClass().getSimpleName();
String user = null;
Long start = 0L;
Long end = 0L;
String ip = null;
// 当前用户
try {
// 执行方法所消耗的时间
start = System.currentTimeMillis();
result = point.proceed();
end = System.currentTimeMillis();
// ip
ip = InetAddress.getLocalHost().getHostAddress();
// 登录名
Sys_User sys_User = (Sys_User) ActionContext.getContext().getSession().get("user");
user = sys_User.getName();
// System.out.println("Username:" +user);
} catch (Throwable e) {
// e.printStackTrace();
}
System.err.println("消耗时间:"+(end-start)+"  ip:"+ip+"  methodName:"+methodName+"  className:"+className+" user:"+user);
return result;
}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值