package com.ld.igds.camera; 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; /** * 视频接口管理,用于管理不同播放方式的协议接口,业务通过当前管理调用不同的实现 */ @Component(ApiCameraManager.BEAN_ID) public class ApiCameraManager implements ApplicationContextAware { public static final String BEAN_ID = "core.apiCameraManager"; public static Map remoteMap = new HashMap<>(); @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { Map grainMap = applicationContext.getBeansOfType(ApiCameraService.class); for (String key : grainMap.keySet()) { remoteMap.put(grainMap.get(key).getPlayType(), grainMap.get(key)); } } /** * 根据播放方式获取系统实现接口,如果接口没有实现,自动调用系统默认接口 * * @param playType * @return */ public ApiCameraService getApiCameraService(String playType) { ApiCameraService apiCameraService = remoteMap.get(playType); if (null == apiCameraService) { apiCameraService = remoteMap.get(CameraUtil.PLAY_TYPE_DEFAULT); } return apiCameraService; } }