Repository: apache/shardingsphere
Issue: NullPointerException will occur when bindingtable have no tablerule but have a default datasource

## Bug Report

**For English only**, other languages will not accept.

Before report a bug, make sure you have:

- Searched open and closed [GitHub issues](https://github.com/apache/incubator-shardingsphere/issues).
- Read documentation: [ShardingSphere Doc](https://shardingsphere.apache.org/document/current/en/overview).

Please pay attention on issues you submitted, because we maybe need more details. 
If no response **more than 7 days** and we cannot reproduce it on current information, we will **close it**.

Please answer these questions before submitting your issue. Thanks!

### Which version of ShardingSphere did you use?
the dev branch
### Which project did you use? Sharding-JDBC or Sharding-Proxy?
 Sharding-JDBC
### Expected behavior
can work and not occur NullPointerException
### Actual behavior
occur a NullPointerException
### Reason analyze (If you can)
the initialization of bindingTableRules of ShardingRule use broadcastTables when broadcastTables have not been initialized

### Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc.

### Example codes for reproduce this issue (such as a github link).

> Map<String, DataSource> dataSourceMap = new HashMap<>();
        dataSourceMap.put("master_0", getMysqlDatasource("demo_ds_master_0"));
        ShardingRuleConfiguration configuration = new ShardingRuleConfiguration();
        configuration.setBindingTableGroups(Arrays.asList("user","user_detail"));
        configuration.setDefaultDataSourceName("master_0");
        ShardingDataSourceFactory.createDataSource(dataSourceMap,configuration,new Properties());


Changed files:
sharding-core/sharding-core-common/src/main/java/org/apache/shardingsphere/core/rule/ShardingRule.java

diff --git a/sharding-core/sharding-core-common/src/main/java/org/apache/shardingsphere/core/rule/ShardingRule.java b/sharding-core/sharding-core-common/src/main/java/org/apache/shardingsphere/core/rule/ShardingRule.java
index 149c18a9763..a8a9d46b2bb 100644
--- a/sharding-core/sharding-core-common/src/main/java/org/apache/shardingsphere/core/rule/ShardingRule.java
+++ b/sharding-core/sharding-core-common/src/main/java/org/apache/shardingsphere/core/rule/ShardingRule.java
@@ -78,8 +78,8 @@ public class ShardingRule implements BaseRule {
         this.ruleConfiguration = shardingRuleConfig;
         shardingDataSourceNames = new ShardingDataSourceNames(shardingRuleConfig, dataSourceNames);
         tableRules = createTableRules(shardingRuleConfig);
-        bindingTableRules = createBindingTableRules(shardingRuleConfig.getBindingTableGroups());
         broadcastTables = shardingRuleConfig.getBroadcastTables();
+        bindingTableRules = createBindingTableRules(shardingRuleConfig.getBindingTableGroups());
         defaultDatabaseShardingStrategy = createDefaultShardingStrategy(shardingRuleConfig.getDefaultDatabaseShardingStrategyConfig());
         defaultTableShardingStrategy = createDefaultShardingStrategy(shardingRuleConfig.getDefaultTableShardingStrategyConfig());
         defaultShardingKeyGenerator = createDefaultKeyGenerator(shardingRuleConfig.getDefaultKeyGeneratorConfig());