首先,作些准备操做,创建一个log数据库表存放信息(这个你想要什么log信息就本身添加)前端
形式大概能够为 userId username logDate(日志日期) operator(操做) methodName(方法名称)java
而后使用maven的逆向工程生成实体类,dao。。spring
以后,就是要创建一个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的分页插件便可。