首先,做些准备操作,建立一个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 }
LogAspect

然后在spring-MVC.xml 里面

<!--开启切面编程自动代理-->
<aop:aspectj-autoproxy proxy-target-class="true"/>
<bean id="logAspect" class="com.corder520.common.LogAspect"/>

如果要把日志在前端展示,建立一个controller
利用mybatis的分页插件即可。

 

posted on 2018-09-16 17:13  蓝绿绿  阅读(120)  评论(0编辑  收藏  举报