Jeecg中通过Spring_AOP+注解方式实现日志的管理
一、设计思路
通过spring的aop切面功能,拦截到请求的所有的符合切面表达式的方法,判断是否含有注解标志,生成日志对象,然后通过aop的后置通知进行日志的持久化。
二、代码实现
1、工程结构:
2、pom.xml增加aop依赖:
org.springframework
spring-aop
4.1.7.RELEASE
aspectj
aspectjrt
1.5.3
org.aspectj
aspectjweaver
1.8.4
aopalliance
aopalliance
1.0
cglib
cglib
3.2.4
3、定义我们的Log实体对象
package aop;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;
import org.jeecgframework.core.common.entity.IdEntity;
@Entity
@Table(name="assess_log_test")
@DynamicInsert(true)
@DynamicUpdate(true)
@SuppressWarnings("serial")
public class Log implements java.io.Serializable{
/**
* 日志id
*/
private String id;
/**
* 当前操作人id
*/
private String loginAccount;
/**
* 当前操作人ip
*/
private String loginIp;
/**
* 操作请求的链接
*/
private String actionUrl;
/**
* 执行的模块
*/
private String module;
/**
* 执行的方法
*/
private String method;
/**
* 执行操作时间
*/
private Long actionTime;
/**
* 描述
*/
private String description;
/**
* 执行的时间
*/
private Date gmtCreate;
/**
* 该操作状态,1表示成功,-1表示失败!
*/
private Short state;
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name="paymentableGenerator",strategy="uuid")
@Column(name="id",nullable=false,length=32)
public String getId() {
return id;
}
@Column(name="login_account",length=32)
public String getLoginAccount() {
return loginAccount;
}
@Column(name="login_ip",length=32)
public String getLoginIp() {
return loginIp;
}
@Column(name="action_url",length=100)
public String getActionUrl() {
return actionUrl;
}
@Column(name="module",length=32)
public String getModule() {
return module;
}
@Column(name="method",length=32)