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.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; /** * Description: * * @author LiHang * @date 2023/4/24 */ @Component @DependsOn("vciSpringUtil") public class DdlMapperProcessStrategy { @Value("${spring.datasource.driver-class-name}") private 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)); PROCESSORS.add(VciSpringUtil.getBean(DdlDmMapperProcessor.class)); } @Bean("ddlMapper") public DdlMapperProcessor getProcessor(){ for (DdlMapperProcessor processor : PROCESSORS) { if (processor.support(DATABASE_DRIVER)){ System.out.println("==========================================="); System.out.println("获取DDL操作类成功:" + processor.getClass().getName()); return processor; } } return VciSpringUtil.getBean(DdlOracleMapperProcessor.class); } }