package com.vci.ubcs.ddl.processor.dll; import com.alibaba.nacos.shaded.com.google.common.collect.Lists; import com.vci.ubcs.ddl.mapper.DllMsMapper; import com.vci.ubcs.ddl.mapper.DllOracleMapper; import com.vci.ubcs.ddl.mapper.DllSqlLiteMapper; import com.vci.ubcs.starter.util.VciSpringUtil; import org.springframework.beans.factory.InitializingBean; 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.PostConstruct; import javax.annotation.Resource; import java.util.List; /** * Description: * * @author LiHang * @date 2023/4/24 */ @Component @DependsOn("vciSpringUtil") public class DllMapperProcessorStrategy { @Value("${spring.datasource.driver-class-name}") private String DATABASE_DRIVER; public static List processors = Lists.newArrayList(); static { processors.add(VciSpringUtil.getBean(DllMsMapperProcessor.class)); processors.add(VciSpringUtil.getBean(DllSqlLiteMapperProcessor.class)); processors.add(VciSpringUtil.getBean(DllMySqlMapperProcessor.class)); processors.add(VciSpringUtil.getBean(DllOracleMapperProcessor.class)); processors.add(VciSpringUtil.getBean(DllDmMapperProcessor.class)); } @Bean("dllMapper") public DllMapperProcessor getProcessor(){ for (DllMapperProcessor processor : processors) { if (processor.support(DATABASE_DRIVER)){ System.out.println("==========================================="); System.out.println("获取DLL操作类成功:" + processor.getClass().getName()); return processor; } } return VciSpringUtil.getBean(DllOracleMapperProcessor.class); } }