package org.springblade.mdm.program.service.programannotation; import org.springblade.core.tool.utils.SpringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * 负责切换合适的注释处理器 */ @Component public class AnnotationProcessorHelper { @Autowired private MachineAnnotationConfig annotationConfig; public AnnotationProcessor getProcessor(String controlSystem){ AnnotationProperties props = annotationConfig.getConfigMap().get(controlSystem); AnnotationProcessor processor; if(props != null){ processor = SpringUtil.getBean(props.getBeanId()); processor.setAnnotationProperties(props); }else{ processor = SpringUtil.getBean(DefaultProcessor.class); processor.setAnnotationProperties(AnnotationProperties.getDefault()); } processor.setControlSystem(controlSystem); return processor; } }