首先,作些準備操做,創建一個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的分頁插件便可。