From 22e8a676ee42c0d78b3526bcd9a635abbe8dca03 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 28 六月 2022 11:28:21 +0800
Subject: [PATCH] 优化databus bug
---
java110-core/src/main/java/com/java110/core/event/cmd/ServiceCmdEventPublishing.java | 43 ++++++++++++++++++++++++++-----------------
1 files changed, 26 insertions(+), 17 deletions(-)
diff --git a/java110-core/src/main/java/com/java110/core/event/cmd/ServiceCmdEventPublishing.java b/java110-core/src/main/java/com/java110/core/event/cmd/ServiceCmdEventPublishing.java
index 990e21a..c2b1d52 100644
--- a/java110-core/src/main/java/com/java110/core/event/cmd/ServiceCmdEventPublishing.java
+++ b/java110-core/src/main/java/com/java110/core/event/cmd/ServiceCmdEventPublishing.java
@@ -1,15 +1,12 @@
package com.java110.core.event.cmd;
-import com.java110.core.annotation.Java110Cmd;
-import com.java110.core.context.DataFlowContext;
+import com.alibaba.fastjson.JSONObject;
import com.java110.core.context.ICmdDataFlowContext;
import com.java110.core.event.center.DataFlowListenerOrderComparator;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.core.event.service.api.ServiceDataFlowListener;
-import com.java110.entity.center.AppService;
+import com.java110.core.log.LoggerFactory;
+import com.java110.dto.CmdListenerDto;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.ResponseConstant;
-import com.java110.utils.constant.ServiceCodeConstant;
import com.java110.utils.exception.BusinessException;
import com.java110.utils.exception.CmdException;
import com.java110.utils.exception.ListenerExecuteException;
@@ -17,8 +14,6 @@
import com.java110.utils.log.LoggerEngine;
import com.java110.utils.util.Assert;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.http.HttpMethod;
import java.util.ArrayList;
import java.util.HashMap;
@@ -42,7 +37,7 @@
/**
* 淇濆瓨渚﹀惉瀹炰緥淇℃伅锛屼竴鑸惎鍔ㄦ椂鍔犺浇
*/
- private static final List<String> listeners = new ArrayList<String>();
+ private static final List<CmdListenerDto> listeners = new ArrayList<CmdListenerDto>();
/**
* 鏍规嵁 浜嬩欢绫诲瀷鏌ヨ渚﹀惉
@@ -54,7 +49,7 @@
*
* @param listener
*/
- public static void addListener(String listener) {
+ public static void addListener(CmdListenerDto listener) {
listeners.add(listener);
}
@@ -63,7 +58,7 @@
*
* @return
*/
- public static List<String> getListeners() {
+ public static List<CmdListenerDto> getListeners() {
return listeners;
}
@@ -85,10 +80,10 @@
}
List<ServiceCmdListener> cmdListeners = new ArrayList<ServiceCmdListener>();
- for (String listenerBeanName : getListeners()) {
- ServiceCmdListener listener = ApplicationContextFactory.getBean(listenerBeanName, ServiceCmdListener.class);
- Java110Cmd java110Cmd = listener.getClass().getDeclaredAnnotation(Java110Cmd.class);
- if(java110Cmd.serviceCode().equals(serviceCode)) {
+ for (CmdListenerDto listenerBean : getListeners()) {
+ //ServiceCmdListener listener = ApplicationContextFactory.getBean(listenerBean.getBeanName(), ServiceCmdListener.class);
+ ServiceCmdListener listener = ApplicationContextFactory.getBean(listenerBean.getBeanName(), ServiceCmdListener.class);
+ if (listenerBean.getServiceCode().equals(serviceCode)) {
cmdListeners.add(listener);
}
}
@@ -123,7 +118,7 @@
* @param dataFlowContext
*/
public static void multicastEvent(String serviceCode, ICmdDataFlowContext dataFlowContext) throws BusinessException {
- multicastEvent(serviceCode, dataFlowContext, null);
+ multicastEvent(serviceCode, dataFlowContext, null);
}
/**
@@ -198,10 +193,24 @@
@SuppressWarnings({"unchecked", "rawtypes"})
protected static void invokeListener(ServiceCmdListener listener, CmdEvent event) {
try {
- listener.cmd(event);
+ // //杩欓噷澶勭悊涓氬姟閫昏緫鏁版嵁
+ ICmdDataFlowContext dataFlowContext = event.getCmdDataFlowContext();
+ //鑾峰彇璇锋眰鏁版嵁
+ JSONObject reqJson = dataFlowContext.getReqJson();
+
+ logger.debug("API鏈嶅姟 --- 璇锋眰鍙傛暟涓猴細{}", reqJson.toJSONString());
+
+ listener.validate(event, dataFlowContext, reqJson);
+
+ listener.doCmd(event, dataFlowContext, reqJson);
+
+ //logger.debug("API鏈嶅姟 --- 杩斿洖鎶ユ枃淇℃伅锛歿}", dataFlowContext.getResponseEntity());
+ // listener.cmd(event);
} catch (CmdException e) {
LoggerEngine.error("鍙戝竷渚﹀惉澶辫触", e);
throw e;
}
}
+
+
}
--
Gitblit v1.8.0