package com.ld.igds.inout; import com.ld.igds.io.constant.ProtocolEnum; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; /** * @Desc: 出入库相关设备操作接口管理 * @author: Andy * @update-time: 2022/11/24 */ @Component public class ApiInoutManager implements ApplicationContextAware { public static Map remoteMap = new HashMap<>(); @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { Map grainMap = applicationContext.getBeansOfType(ApiInoutService.class); for (String key : grainMap.keySet()) { remoteMap.put(grainMap.get(key).getProtocol(), grainMap.get(key)); } } /** * 根据协议类型获取系统实现接口,如果接口没有实现,自动调用系统默认接口 * * @param protocol 所属协议 * @return */ public ApiInoutService getApiService(String protocol) { ApiInoutService apiService = remoteMap.get(protocol); if (null == apiService) { apiService = remoteMap.get(ProtocolEnum.TCP_DEFAULT.getCode()); } return apiService; } }