package com.vci.ubcs.ddl.processor.ddl; import com.alibaba.nacos.shaded.com.google.common.collect.Lists; import com.vci.ubcs.ddl.mapper.DdlMSMapper; import com.vci.ubcs.ddl.mapper.DdlMySqlMapper; import com.vci.ubcs.ddl.mapper.DdlOracleMapper; import com.vci.ubcs.starter.util.VciSpringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; /** * Description: * * @author LiHang * @date 2023/4/24 */ public class DdlMapperProcessStrategy { @Value("${spring.datasource.driver-class-name}") private static final String DATABASE_DRIVER = ""; private final static List PROCESSORS = Lists.newArrayList(); static { PROCESSORS.add(VciSpringUtil.getBean(DdlOracleMapperProcessor.class)); PROCESSORS.add(VciSpringUtil.getBean(DdlMySqlMapperProcessor.class)); PROCESSORS.add(VciSpringUtil.getBean(DdlMsMapperProcessor.class)); } public static DdlMapperProcessor getProcessor(){ for (DdlMapperProcessor processor : PROCESSORS) { if (processor.support(DATABASE_DRIVER)){ return processor; } } return VciSpringUtil.getBean(DdlOracleMapperProcessor.class); } }