**
引言
**
用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. 效果展示