首页>代码>基于Springboot+Mybatis+ SpringMvc+springsecrity+Redis完整网站后台管理系统>/boot-security-master/src/main/java/com/boot/security/server/advice/LogAdvice.java
package com.boot.security.server.advice;

import com.boot.security.server.utils.UserUtil;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.model.SysLogs;
import com.boot.security.server.service.SysLogService;

import io.swagger.annotations.ApiOperation;

/**
 * 统一日志处理
 *
 * @author wpw
 *
 *         2017年8月19日
 */
@Aspect
@Component
public class LogAdvice {

	@Autowired
	private SysLogService logService;

	@Around(value = "@annotation(com.boot.security.server.annotation.LogAnnotation)")
	public Object logSave(ProceedingJoinPoint joinPoint) throws Throwable {
		SysLogs sysLogs = new SysLogs();
        sysLogs.setUser(UserUtil.getLoginUser()); // 设置当前登录用户
		MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();

		String module = null;
		LogAnnotation logAnnotation = methodSignature.getMethod().getDeclaredAnnotation(LogAnnotation.class);
		module = logAnnotation.module();
		if (StringUtils.isEmpty(module)) {
			ApiOperation apiOperation = methodSignature.getMethod().getDeclaredAnnotation(ApiOperation.class);
			if (apiOperation != null) {
				module = apiOperation.value();
			}
		}

		if (StringUtils.isEmpty(module)) {
			throw new RuntimeException("没有指定日志module");
		}
		sysLogs.setModule(module);

		try {
			Object object = joinPoint.proceed();
			sysLogs.setFlag(true);

			return object;
		} catch (Exception e) {
			sysLogs.setFlag(false);
			sysLogs.setRemark(e.getMessage());
			throw e;
        } finally {
            if (sysLogs.getUser() != null) {
                logService.save(sysLogs);
            }
        }

	}
}
最近下载更多
chenli1212  LV5 9月10日
lzqsky666  LV11 9月1日
NeverMore_pig  LV2 8月29日
幻灵幽幽  LV2 8月17日
yzxyzx  LV2 8月7日
mahuig  LV10 8月2日
syczzxj  LV6 7月31日
wxd1997  LV12 7月4日
win1991  LV5 7月4日
最近浏览更多
chenli1212  LV5 9月10日
xy320_  LV2 9月5日
lzqsky666  LV11 9月1日
zxy970327  LV2 8月30日
NeverMore_pig  LV2 8月29日
gqboss  LV1 8月29日
xiaoyanzi  LV1 8月29日
zrqwoaini  LV1 8月29日
xiaoxiaobiao 8月25日
暂无贡献等级
幻灵幽幽  LV2 8月17日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友