标签:font type spl ack null eth etop erb ati
首先,做些准备操作,建立一个log数据库表存放信息(这个你想要什么log信息就自己添加)
形式大概可以为 userId username logDate(日志日期) operator(操作) methodName(方法名称)
然后使用maven的逆向工程生成实体类,dao。。
之后,就是要建立一个spring AOP的工具类
1 package com.corder520.common; 2 3 4 import com.corder520.log.entity.Log; 5 import com.corder520.log.service.LogService; 6 import com.corder520.user.entity.User; 7 import org.aspectj.lang.JoinPoint; 8 import org.aspectj.lang.annotation.AfterReturning; 9 import org.aspectj.lang.annotation.Aspect; 10 import org.aspectj.lang.annotation.Pointcut; 11 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.stereotype.Component; 13 import java.util.Date; 14 15 @Aspect 16 @Component 17 public class LogAspect { 18 19 @Autowired 20 private LogService logService; 21 22 @Pointcut("execution(* com.corder520.user.service.UserServiceImpl.findUserByUserName(..))") 23 public void loginCell(){} 24 25 26 @AfterReturning(value = "loginCell()",argNames ="joinPoint,object" ,returning = "object") 27 public void loginLog(JoinPoint joinPoint,Object object){ 28 User user= (User) object; 29 if (user==null){ 30 return; 31 } 32 if (joinPoint.getArgs()==null){ 33 return; 34 } 35 36 String methodName=joinPoint.getSignature().getName(); 37 38 Log log=new Log(); 39 log.setUserid(user.getId()); 40 log.setLogdate(new Date()); 41 log.setOperator("登录"); 42 log.setUsername(user.getUsername()); 43 log.setMethod(methodName); 44 logService.insert(log); 45 } 46 47 }
然后在spring-MVC.xml 里面
<!--开启切面编程自动代理-->
<aop:aspectj-autoproxy proxy-target-class="true"/>
<bean id="logAspect" class="com.corder520.common.LogAspect"/>
如果要把日志在前端展示,建立一个controller
利用mybatis的分页插件即可。
标签:font type spl ack null eth etop erb ati
原文地址:https://www.cnblogs.com/xiaobo520/p/9656637.html