From 036ba4885c51bf721f1444177e7efcc5dd7a7460 Mon Sep 17 00:00:00 2001
From: jianan <1072772483@qq.com>
Date: Sun, 3 Jul 2022 22:50:26 +0800
Subject: [PATCH] =?UTF-8?q?perf[module]:=20Event=E5=92=8Cprotocol=E6=A8=A1?=
=?UTF-8?q?=E5=9D=97=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/zfoo/event/EventContext.java | 2 ++
.../event/schema/EventRegisterProcessor.java | 3 +++
.../com/zfoo/protocol/ProtocolManager.java | 22 +++++++++++++++++++
.../protocol/generate/GenerateOperation.java | 2 +-
.../generate/GenerateProtocolFile.java | 7 ++++++
5 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/event/src/main/java/com/zfoo/event/EventContext.java b/event/src/main/java/com/zfoo/event/EventContext.java
index 70a748f6..2dbe7d58 100644
--- a/event/src/main/java/com/zfoo/event/EventContext.java
+++ b/event/src/main/java/com/zfoo/event/EventContext.java
@@ -31,6 +31,8 @@ import java.util.concurrent.ExecutorService;
/**
* @author jaysunxiao
* @version 3.0
+ *
+ * 在EventRegisterProcessor 中完成扫描
*/
public class EventContext implements ApplicationListener, Ordered {
diff --git a/event/src/main/java/com/zfoo/event/schema/EventRegisterProcessor.java b/event/src/main/java/com/zfoo/event/schema/EventRegisterProcessor.java
index a34d00af..003b1510 100644
--- a/event/src/main/java/com/zfoo/event/schema/EventRegisterProcessor.java
+++ b/event/src/main/java/com/zfoo/event/schema/EventRegisterProcessor.java
@@ -29,6 +29,9 @@ import org.springframework.beans.factory.config.BeanPostProcessor;
import java.lang.reflect.Modifier;
/**
+ * 这是一个后置处理器,在boot项目中注册EventContext时,会import导入EventRegisterProcessor这个组件,这是一个后置处理器,
+ * 断点发现 在AbstractAutowireCapableBeanFactory或调用getBeanPostProcessors,这样子每一个后置处理器都会走postProcessAfterInitialization这个方法
+ *
* @author jaysunxiao
* @version 3.0
*/
diff --git a/protocol/src/main/java/com/zfoo/protocol/ProtocolManager.java b/protocol/src/main/java/com/zfoo/protocol/ProtocolManager.java
index 4369f24f..47a8f4e0 100644
--- a/protocol/src/main/java/com/zfoo/protocol/ProtocolManager.java
+++ b/protocol/src/main/java/com/zfoo/protocol/ProtocolManager.java
@@ -33,9 +33,19 @@ public class ProtocolManager {
public static final short MAX_PROTOCOL_NUM = Short.MAX_VALUE;
public static final byte MAX_MODULE_NUM = Byte.MAX_VALUE;
+ /**
+ * 索引:协议号protocolId
+ */
public static final IProtocolRegistration[] protocols = new IProtocolRegistration[MAX_PROTOCOL_NUM];
+ /**
+ * 索引:模块号
+ */
public static final ProtocolModule[] modules = new ProtocolModule[MAX_MODULE_NUM];
+ /**
+ * key:协议class
+ * value:protocolId
+ */
private static final Map, Short> protocolIdMap = new HashMap<>();
static {
@@ -68,12 +78,24 @@ public class ProtocolManager {
return modules[protocols[id].module()];
}
+ /**
+ * 根据模块id查找模块
+ *
+ * @param moduleId
+ * @return
+ */
public static ProtocolModule moduleByModuleId(byte moduleId) {
var module = modules[moduleId];
AssertionUtils.notNull(module, "[moduleId:{}]不存在", moduleId);
return module;
}
+ /**
+ * 根据模块名字查找模块
+ *
+ * @param name
+ * @return
+ */
public static ProtocolModule moduleByModuleName(String name) {
var moduleOptional = Arrays.stream(modules)
.filter(it -> Objects.nonNull(it))
diff --git a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateOperation.java b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateOperation.java
index 906ff945..65234f9c 100644
--- a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateOperation.java
+++ b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateOperation.java
@@ -47,7 +47,7 @@ public class GenerateOperation {
private String protocolParam;
/**
- * 需要生成的协议文件
+ * 需要生成的协议文件(c#、js、ts...等需要生成协议的语言都列出来)
*/
private final Set generateLanguages = EnumSet.noneOf(CodeLanguage.class);
diff --git a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolFile.java b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolFile.java
index 4b454ace..b7f6b62b 100644
--- a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolFile.java
+++ b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolFile.java
@@ -58,6 +58,13 @@ public abstract class GenerateProtocolFile {
index = null;
}
+ /**
+ * 生成各种语言的协议文件
+ *
+ * @param generateOperation
+ * @throws IOException
+ * @throws ClassNotFoundException
+ */
public static void generate(GenerateOperation generateOperation) throws IOException, ClassNotFoundException {
var protocols = ProtocolManager.protocols;