package com.ld.igds.io.sample; 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; /** * 扦样机管理接口,根据品牌协议不同,调用不同的实现接口 * * @author chen */ @Component(ApiSampleManager.BEAN_ID) public class ApiSampleManager implements ApplicationContextAware { public static final String BEAN_ID = "inout.apiSampleManager"; public static Map remoteMap = new HashMap<>(); @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { Map grainMap = applicationContext.getBeansOfType(ApiSampleService.class); for (String key : grainMap.keySet()) { remoteMap.put(grainMap.get(key).getProtocol(), grainMap.get(key)); } } /** * 根据播放方式获取系统实现接口,如果接口没有实现,自动调用系统默认接口 * * @param playType * @return */ public ApiSampleService getApiSampleService(String playType) { ApiSampleService apiSampleService = remoteMap.get(playType); if (null == apiSampleService) { apiSampleService = remoteMap.get(ProtocolEnum.TCP_DEFAULT.getCode()); } return apiSampleService; } }