package com.iplatform.gather.config; import com.iplatform.gather.support.DefaultMetaDataEngine; import com.walker.connector.LocalAddress; import com.walker.db.DatabaseType; import com.walker.dbmeta.DatabaseMetaEngine; import com.walker.dbmeta.support.MySQLMetaEngine; import com.walker.dbmeta.support.OracleMetaEngine; import com.walker.jdbc.JdbcInspector; import com.walker.store.AbstractMetaDataEngine; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration @ConditionalOnProperty(prefix = "iplatform.gather", name = "enabled", havingValue = "true", matchIfMissing = false) public class GatherConfig { private final transient Logger logger = LoggerFactory.getLogger(this.getClass()); @Bean public GatherProperties gatherProperties(){ return new GatherProperties(); } @Bean public LocalAddress localAddress(JdbcInspector jdbcInspector){ LocalAddress localAddress = new LocalAddress(jdbcInspector.getPrimaryDataSourceMeta()); logger.info("localAddress.serviceName = " + localAddress.getServiceName()); // logger.info("localAddress.service = " + localAddress.getService()); return localAddress; } @Bean public AbstractMetaDataEngine metaDataEngine(JdbcInspector jdbcInspector){ DatabaseMetaEngine databaseMetaEngine = null; DatabaseType databaseType = jdbcInspector.getPrimaryDatabaseType(); if(databaseType == DatabaseType.MYSQL){ databaseMetaEngine = new MySQLMetaEngine(); } else if(databaseType == DatabaseType.ORACLE){ databaseMetaEngine = new OracleMetaEngine(); } else { throw new UnsupportedOperationException("暂不支持其他数据库 DatabaseMetaEngine 创建: " + databaseType.toString()); } // AbstractMetaDataEngine metaDataEngine = new TestMetaDataEngine(); AbstractMetaDataEngine metaDataEngine = new DefaultMetaDataEngine(); metaDataEngine.setDatabaseMetaEngine(databaseMetaEngine); logger.info("创建了对象: AbstractMetaDataEngine"); return metaDataEngine; } }