wuxw7
2018-07-02 fec26dfca0c796c2c9d4cd3c206affa0bc06c281
java110-event/src/main/java/com/java110/event/service/BusinessServiceDataFlowEventPublishing.java
@@ -3,6 +3,7 @@
import com.java110.common.constant.CommonConstant;
import com.java110.common.constant.ResponseConstant;
import com.java110.common.exception.BusinessException;
import com.java110.common.factory.ApplicationContextFactory;
import com.java110.common.log.LoggerEngine;
import com.java110.common.util.Assert;
import com.java110.core.context.DataFlowContext;
@@ -29,7 +30,7 @@
    /**
     * 保存侦听实例信息,一般启动时加载
     */
    private final static List<BusinessServiceDataFlowListener> listeners = new ArrayList<BusinessServiceDataFlowListener>();
    private final static List<String> listeners = new ArrayList<String>();
    /**
     * 根据 事件类型查询侦听
@@ -40,7 +41,7 @@
     * 添加 侦听,这个只有启动时,单线程 处理,所以是线程安全的
     * @param listener
     */
    public static void addListenner(BusinessServiceDataFlowListener listener){
    public static void addListener(String listener){
        listeners.add(listener);
    }
@@ -48,7 +49,7 @@
     * 获取侦听(全部侦听)
     * @return
     */
    public static List<BusinessServiceDataFlowListener> getListeners(){
    public static List<String> getListeners(){
        return listeners;
    }
@@ -60,7 +61,7 @@
     */
    public static List<BusinessServiceDataFlowListener> getListeners(String serviceCode){
        Assert.isNull(serviceCode,"获取需要发布的事件处理侦听时,传递事件为空,请检查");
        Assert.hasLength(serviceCode,"获取需要发布的事件处理侦听时,传递事件为空,请检查");
        //先从缓存中获取,为了提升效率
        if(cacheListenersMap.containsKey(serviceCode)){
@@ -68,7 +69,8 @@
        }
        List<BusinessServiceDataFlowListener> dataFlowListeners = new ArrayList<BusinessServiceDataFlowListener>();
        for(BusinessServiceDataFlowListener listener : getListeners()){
        for(String listenerBeanName : getListeners()){
            BusinessServiceDataFlowListener listener = ApplicationContextFactory.getBean(listenerBeanName,BusinessServiceDataFlowListener.class);
            if(serviceCode.equals(listener.getServiceCode())){
                dataFlowListeners.add(listener);
            }
@@ -109,7 +111,7 @@
     */
    public static void multicastEvent(String serviceCode,DataFlowContext dataFlowContext,String asyn) throws  BusinessException{
        try {
            BusinessServiceDataFlowEvent targetDataFlowEvent = new BusinessServiceDataFlowEvent(null,dataFlowContext);
            BusinessServiceDataFlowEvent targetDataFlowEvent = new BusinessServiceDataFlowEvent(serviceCode,dataFlowContext);
            multicastEvent(serviceCode,targetDataFlowEvent, asyn);
        }catch (Exception e){