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

Reply via email to