Skip to content

Commit e5037c0

Browse files
committed
add DomainEvent
1 parent 9e2a68e commit e5037c0

File tree

6 files changed

+56
-91
lines changed

6 files changed

+56
-91
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,14 @@
11
package com.codingapi.springboot.framework.domain.event;
22

3-
import com.codingapi.springboot.framework.event.IEvent;
43
import lombok.Getter;
5-
import lombok.ToString;
64

75
/**
86
* 实体创建事件
97
*/
108
@Getter
11-
@ToString
12-
public class DomainCreateEvent implements IEvent {
13-
14-
/**
15-
* 实体对象
16-
*/
17-
private final Object entity;
18-
19-
/**
20-
* 实体类名称
21-
*/
22-
private final String simpleName;
23-
24-
/**
25-
* 时间戳
26-
*/
27-
private final long timestamp;
9+
public class DomainCreateEvent extends DomainEvent {
2810

2911
public DomainCreateEvent(Object entity) {
30-
this.entity = entity;
31-
this.simpleName = entity.getClass().getSimpleName();
32-
this.timestamp = System.currentTimeMillis();
12+
super(entity);
3313
}
34-
3514
}
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,15 @@
11
package com.codingapi.springboot.framework.domain.event;
22

3-
import com.codingapi.springboot.framework.event.IEvent;
43
import lombok.Getter;
5-
import lombok.ToString;
64

75
/**
8-
* 实体创建事件
6+
* 实体删除事件
97
*/
108
@Getter
11-
@ToString
12-
public class DomainDeleteEvent implements IEvent {
13-
14-
/**
15-
* 实体对象
16-
*/
17-
private final Object entity;
18-
19-
/**
20-
* 实体类名称
21-
*/
22-
private final String simpleName;
23-
24-
/**
25-
* 时间戳
26-
*/
27-
private final long timestamp;
9+
public class DomainDeleteEvent extends DomainEvent {
2810

2911
public DomainDeleteEvent(Object entity) {
30-
this.entity = entity;
31-
this.simpleName = entity.getClass().getSimpleName();
32-
this.timestamp = System.currentTimeMillis();
12+
super(entity);
3313
}
3414

3515
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.codingapi.springboot.framework.domain.event;
2+
3+
import com.codingapi.springboot.framework.event.IEvent;
4+
import lombok.Getter;
5+
import lombok.ToString;
6+
7+
/**
8+
* 实体事件
9+
*/
10+
@Getter
11+
@ToString(exclude = "entity")
12+
public abstract class DomainEvent implements IEvent {
13+
14+
/**
15+
* 实体类型
16+
*/
17+
private final Class<?> entityClass;
18+
/**
19+
* 时间戳
20+
*/
21+
private final long timestamp;
22+
/**
23+
* 实体
24+
*/
25+
private final Object entity;
26+
27+
public DomainEvent(Object entity) {
28+
this.entity = entity;
29+
this.entityClass = entity.getClass();
30+
this.timestamp = System.currentTimeMillis();
31+
}
32+
}
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
11
package com.codingapi.springboot.framework.domain.event;
22

3-
import com.codingapi.springboot.framework.event.IEvent;
43
import lombok.Getter;
5-
import lombok.ToString;
64

5+
/**
6+
* 实体持久化事件
7+
*/
78
@Getter
8-
@ToString
9-
public class DomainPersistEvent implements IEvent {
10-
11-
private final Object entity;
12-
private final String simpleName;
13-
private final long timestamp;
9+
public class DomainPersistEvent extends DomainEvent {
1410

1511
public DomainPersistEvent(Object entity) {
16-
this.entity = entity;
17-
this.simpleName = entity.getClass().getSimpleName();
18-
this.timestamp = System.currentTimeMillis();
12+
super(entity);
1913
}
2014
}
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,33 @@
11
package com.codingapi.springboot.framework.domain.event;
22

3-
import com.codingapi.springboot.framework.event.IEvent;
43
import lombok.Getter;
5-
import lombok.Setter;
64
import lombok.ToString;
75

86
/**
97
* 实体字段变更事件
108
*/
11-
@Setter
129
@Getter
13-
@ToString(exclude = {"entity"})
14-
public class FieldChangeEvent implements IEvent {
15-
16-
/**
17-
* 实体对象
18-
*/
19-
private Object entity;
20-
21-
/**
22-
* 实体类名称
23-
*/
24-
private String simpleName;
25-
26-
/**
27-
* 时间戳
28-
*/
29-
private long timestamp;
10+
@ToString(callSuper = true)
11+
public class FieldChangeEvent extends DomainEvent {
3012

3113
/**
3214
* 字段名称
3315
*/
34-
private String fieldName;
16+
private final String fieldName;
3517
/**
3618
* 旧的值
3719
*/
38-
private Object oldValue;
20+
private final Object oldValue;
3921
/**
4022
* 新的值
4123
*/
42-
private Object newValue;
43-
44-
24+
private final Object newValue;
25+
26+
public FieldChangeEvent(Object entity, String fieldName, Object oldValue, Object newValue) {
27+
super(entity);
28+
this.fieldName = fieldName;
29+
this.oldValue = oldValue;
30+
this.newValue = newValue;
31+
}
4532

4633
}

springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/proxy/FieldValueInterceptor.java

+2-9
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,7 @@ private void compareAndUpdateField() throws InvocationTargetException, IllegalAc
145145
}
146146
}
147147

148-
private void pushEvent(String field, Object oldValue, Object newValue) {
149-
FieldChangeEvent event = new FieldChangeEvent();
150-
event.setEntity(target);
151-
event.setSimpleName(targetClass.getSimpleName());
152-
event.setFieldName(field);
153-
event.setOldValue(oldValue);
154-
event.setNewValue(newValue);
155-
event.setTimestamp(System.currentTimeMillis());
156-
EventPusher.push(event);
148+
private void pushEvent(String fieldName, Object oldValue, Object newValue) {
149+
EventPusher.push(new FieldChangeEvent(target,fieldName,oldValue,newValue));
157150
}
158151
}

0 commit comments

Comments
 (0)