code: protected DataSource buildDataSource(Properties props) {
          if (druidFactoryClass != null) {
              log.debug("build DruidDataSource by props");
              Mirror<?> mirror = Mirror.me(druidFactoryClass);
              DataSource ds = (DataSource) mirror.invoke(null, "createDataSource", props);
              if (!props.containsKey("maxWait"))
                  Mirror.me(ds).setValue(ds, "maxWait", 15*1000);
              return ds;
          }
          log.debug("build SimpleteDataSource by props");
          return SimpleDataSource.createDataSource(props);
      }
docs: 构建DataSource,子类可覆盖. 如果存在Druid,则使用之,否则使用内置的SimpleDataSource
  @param props 配置信息
  @return 目标DataSource