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;