dawuti commented on issue #2227: sharding-sphere 3.0.0 , Tables not configured with sharding rules will not choice the defaultDataSrouces,and will choice the first dataSource in dataSourcesMap. URL: https://github.com/apache/incubator-shardingsphere/issues/2227#issuecomment-485302127 hi : sorry,the issues which i submitted is error version , and the 3.1.0 version is appeared error. **this is DataConfig:** ``` /** * 数据源及分表配置 */ @Configuration @MapperScan(basePackages = {"xxxxx"}, sqlSessionTemplateRef = "shardingSqlSessionTemplate") public class DataSourceConfig { @Autowired private HealthAggregator healthAggregator; @Autowired private Environment environment; @Bean public static PropertySourcesPlaceholderConfigurer propertyConfigure() { return new PropertySourcesPlaceholderConfigurer(); } /** * 配置数据源0 * * @return */ @Bean(name = "ds_0") @ConfigurationProperties(prefix = "spring.ds0") @Qualifier("ds_0") public DataSource dataSource0() { return DruidDataSourceBuilder.create().build(environment, "spring.ds0"); } /** * 配置数据源1 * @return */ @Bean(name="ds_1") @ConfigurationProperties(prefix = "spring.ds1") @Qualifier("ds_1") public DataSource dataSource1(){ return DruidDataSourceBuilder.create().build(environment, "spring.ds1"); } /** * 配置数据源2 * @return */ @Bean(name="ds_2") @ConfigurationProperties(prefix = "spring.ds2") @Qualifier("ds_2") public DataSource dataSource2(){ return DruidDataSourceBuilder.create().build(environment, "spring.ds2"); } /** * 配置数据源3 * @return */ @Bean(name="ds_3") @ConfigurationProperties(prefix = "spring.ds3") @Qualifier("ds_3") public DataSource dataSource3(){ return DruidDataSourceBuilder.create().build(environment, "spring.ds3"); } @Bean(name = "dataSource") public DataSource getShardingDataSource() throws SQLException { ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration(); shardingRuleConfig.getTableRuleConfigs().add(xxxxx); shardingRuleConfig.getTableRuleConfigs().add(xxxxx); shardingRuleConfig.getTableRuleConfigs().add(xxxxx); shardingRuleConfig.getTableRuleConfigs().add(xxxxx); // 默认不分库分表 shardingRuleConfig.setDefaultDataSourceName("ds_0"); shardingRuleConfig.setDefaultDatabaseShardingStrategyConfig(new NoneShardingStrategyConfiguration()); shardingRuleConfig.setDefaultTableShardingStrategyConfig(new NoneShardingStrategyConfiguration()); return ShardingDataSourceFactory.createDataSource(createDataSourceMap(), shardingRuleConfig, new ConcurrentHashMap<>(), null); } Map<String, DataSource> createDataSourceMap() { Map<String, DataSource> result = new HashMap<>(); result.put("ds_0", dataSource0()); result.put("ds_1", dataSource1()); result.put("ds_2", dataSource2()); result.put("ds_3", dataSource3()); return result; } /** * 需要手动配置事务管理器 * * @param dataSource * @return */ @Bean public DataSourceTransactionManager transactitonManager(@Qualifier("dataSource") DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } @Bean(name = "sqlSessionFactory") @Primary public SqlSessionFactory testSqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/**/*.xml")); return bean.getObject(); } @Bean(name = "shardingSqlSessionTemplate") @Primary public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { return new SqlSessionTemplate(sqlSessionFactory); } @Bean(name = "dbHealthIndicator") public HealthIndicator dbHealthIndicator() { Map<String, DataSource> dataSourceMap = new HashMap<>(4); dataSourceMap.put("ds_0", dataSource0()); dataSourceMap.put("ds_1", dataSource1()); dataSourceMap.put("ds_2", dataSource2()); dataSourceMap.put("ds_3", dataSource3()); if (dataSourceMap.size() == 1) { return new DataSourceHealthIndicator(dataSourceMap.values().iterator().next()); } else { CompositeHealthIndicator composite = new CompositeHealthIndicator(this.healthAggregator); Iterator var3 = dataSourceMap.entrySet().iterator(); while (var3.hasNext()) { Map.Entry<String, DataSource> entry = (Map.Entry) var3.next(); composite.addHealthIndicator((String) entry.getKey(), new DataSourceHealthIndicator(entry.getValue())); } return composite; } } } ``` **my sql is sample sql and is generated by mybatis plugin ,it use example model;** it a select model sql;
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
