guns-----业务日志实现

**

引言

**
用guns已经很长时间了,对guns的业务日志的功能很感兴趣,因此去研究了一下。在现在的各种后台管理系统中,加强业务日志的管理,对于监督运维方的有着非常重要的作用。

1. 查看stylefeng的实现

Controller层的注解存储:
在这里插入图片描述
数据字典:
在这里插入图片描述
日志信息的接口:
在这里插入图片描述
日志接口的实现:
在这里插入图片描述
这句话实现的存储操作日志:

@BussinessLog(value = "删除部门", key = "deptId", dict = DeptDict.class)

具体的存储过程guns已经封装好了,因此我们只需要模仿guns 就可以实现了:

2. 具体实现过程

例如我们实现添加员工的操作日志存储:

  • 新建EmployeeDict
public class EmployeeDict extends AbstractDictMap {
    @Override
    public void init() {
        put("id", "员工信息");
        put("phone","员工信息");
    }

    @Override
    protected void initBeWrapped() {
        putFieldWrapperMethodName("id", "getEmployeeInfoById");
        putFieldWrapperMethodName("phone", "getEmployeeInfoByPhone");
    }
}

  • 在接口中添加getEmployeeInfoById方法:
    String getEmployeeInfoById(String id);

    String getEmployeeInfoByPhone(String phone);
  • 在继承类实现方法
    这里用了jpa,应该用mybaits的,谅解一下:
private EmployeeRepository employeeRepository = SpringContextHolder.getBean(EmployeeRepository.class);
 @Override
    public String getEmployeeInfoById(String id) {
        Employee employee = employeeRepository.findByEId(Integer.valueOf(id)).get(0);

        return "员工名="+employee.geteName()+",员工账号="+employee.getePhone()+",员工部门id"+employee.geteDepartmentId();
    }

    @Override
    public String getEmployeeInfoByPhone(String phone) {
        Employee employee = employeeRepository.findByEPhone(phone).get(0);
        return "员工名="+employee.geteName()+",员工账号="+employee.getePhone()+",员工部门id"+employee.geteDepartmentId();
    }
  • controller层
    接下来要在方法前添加注解就可以了

3. 效果展示

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/mochengjiuren_shang/article/details/89330842
今日推荐