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;
|
}
|
}
|