Preconditions.checkArgument(config.getDataSource().size()>0||null!=externalDataSourceMap&&externalDataSourceMap.size()>0,"Sharding JDBC: No data source config");
Preconditions.checkState(returnClass.isAssignableFrom(DatabaseShardingStrategy.class)||returnClass.isAssignableFrom(TableShardingStrategy.class),"Sharding-JDBC: returnClass is illegal");
Preconditions.checkState(shardingAlgorithminstanceofSingleKeyShardingAlgorithm||shardingAlgorithminstanceofMultipleKeysShardingAlgorithm,"Sharding-JDBC: algorithmClassName is illegal");