Skip to content

Commit 3760c55

Browse files
committed
add DomainDeleteEvent
1 parent 5f6ed28 commit 3760c55

File tree

6 files changed

+77
-5
lines changed

6 files changed

+77
-5
lines changed

docs/wiki/springboot-starter.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,16 +177,23 @@ class DomainProxyFactoryTest {
177177
demo.changeName("test");
178178
//这里将会抛出FieldChangeEvent事件
179179
demo.changeName("test123");
180+
//这里将会抛出DomainPersistEvent事件
181+
demo.persist();
182+
//这里将会抛出DomainDeleteEvent事件
183+
demo.delete();
184+
180185
System.out.println(demo);
181186
}
182187
}
183188
```
184189
执行的打印如下:
185190
```
186-
2023-05-27T10:51:12.748+08:00 INFO 1421 --- [ main] c.c.s.f.handler.DemoCreateHandler : create domain -> com.codingapi.springboot.framework.domain.Demo@37c7766e
187-
2023-05-27T10:51:12.753+08:00 INFO 1421 --- [ main] c.c.s.f.h.EntityFiledChangeHandler : field change event -> FieldChangeEvent(simpleName=Demo, timestamp=1685155872753, fieldName=animal.name, oldValue=cat, newValue=123)
188-
2023-05-27T10:51:12.760+08:00 INFO 1421 --- [ main] c.c.s.f.h.EntityFiledChangeHandler : field change event -> FieldChangeEvent(simpleName=Demo, timestamp=1685155872760, fieldName=name, oldValue=test, newValue=test123)
189-
com.codingapi.springboot.framework.domain.Demo@37c7766e
191+
2023-05-28T08:57:00.505+08:00 INFO 13748 --- [ main] c.c.s.f.handler.DemoCreateHandler : create domain -> com.codingapi.springboot.framework.domain.Demo@4cc12db2
192+
2023-05-28T08:57:00.507+08:00 INFO 13748 --- [ main] c.c.s.f.h.EntityFiledChangeHandler : field change event -> FieldChangeEvent(simpleName=Demo, timestamp=1685235420507, fieldName=animal.name, oldValue=cat, newValue=123)
193+
2023-05-28T08:57:00.512+08:00 INFO 13748 --- [ main] c.c.s.f.h.EntityFiledChangeHandler : field change event -> FieldChangeEvent(simpleName=Demo, timestamp=1685235420512, fieldName=name, oldValue=test, newValue=test123)
194+
2023-05-28T08:57:00.513+08:00 INFO 13748 --- [ main] c.c.s.f.handler.DemoPersistEventHandler : DomainPersistEvent handler DomainPersistEvent(entity=com.codingapi.springboot.framework.domain.Demo@4cc12db2, simpleName=Demo, timestamp=1685235420513)
195+
2023-05-28T08:57:00.516+08:00 INFO 13748 --- [ main] c.c.s.f.handler.DemoDeleteHandler : delete domain -> com.codingapi.springboot.framework.domain.Demo@4cc12db2
196+
190197
```
191198

192199
## 转换工具

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.codingapi.springboot.framework.domain;
22

3+
import com.codingapi.springboot.framework.domain.event.DomainDeleteEvent;
34
import com.codingapi.springboot.framework.domain.event.DomainPersistEvent;
45
import com.codingapi.springboot.framework.event.EventPusher;
56

@@ -14,4 +15,11 @@ public interface IDomain {
1415
default void persist(){
1516
EventPusher.push(new DomainPersistEvent(this));
1617
}
18+
19+
/**
20+
* 删除事件
21+
*/
22+
default void delete(){
23+
EventPusher.push(new DomainDeleteEvent(this));
24+
}
1725
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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
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;
28+
29+
public DomainDeleteEvent(Object entity) {
30+
this.entity = entity;
31+
this.simpleName = entity.getClass().getSimpleName();
32+
this.timestamp = System.currentTimeMillis();
33+
}
34+
35+
}

springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/DomainProxyFactoryTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,12 @@ void createEntity() {
1414
demo.changeName("test");
1515
demo.changeName("test123");
1616
demo.persist();
17+
demo.delete();
18+
}
19+
20+
@Test
21+
void deleteEntity() {
22+
Demo demo = DomainProxyFactory.create(Demo.class, "test");
23+
demo.delete();
1724
}
1825
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.codingapi.springboot.framework.handler;
2+
3+
import com.codingapi.springboot.framework.domain.event.DomainDeleteEvent;
4+
import lombok.extern.slf4j.Slf4j;
5+
6+
@Slf4j
7+
@Handler
8+
public class DemoDeleteHandler implements IHandler<DomainDeleteEvent> {
9+
10+
@Override
11+
public void handler(DomainDeleteEvent event) {
12+
log.info("delete domain -> {}", event.getEntity());
13+
}
14+
15+
}

springboot-starter/src/test/java/com/codingapi/springboot/framework/handler/DomainPersistEventHandler.java renamed to springboot-starter/src/test/java/com/codingapi/springboot/framework/handler/DemoPersistEventHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
@Slf4j
77
@Handler
8-
public class DomainPersistEventHandler implements IHandler<DomainPersistEvent>{
8+
public class DemoPersistEventHandler implements IHandler<DomainPersistEvent>{
99

1010
@Override
1111
public void handler(DomainPersistEvent event) {

0 commit comments

Comments
 (0)