apollo-client-config-data/src/main/java/com/ctrip/framework/apollo/config/data/importer/ApolloConfigDataLoaderInitializer.java/ApolloConfigDataLoaderInitializer/initApolloClient
class ApolloConfigDataLoaderInitializer:  public List<PropertySource<?>> initApolloClient() {
    if (INITIALIZED) {
      return Collections.emptyList();
    }
    synchronized (ApolloConfigDataLoaderInitializer.class) {
      if (INITIALIZED) {
        return Collections.emptyList();
      }
      this.initApolloClientInternal();
      INITIALIZED = true;
      if (this.forceDisableApolloBootstrap()) {
        // force disable apollo bootstrap to avoid conflict
        Map<String, Object> map = new HashMap<>();
        map.put(PropertySourcesConstants.APOLLO_BOOTSTRAP_ENABLED, "false");
        map.put(PropertySourcesConstants.APOLLO_BOOTSTRAP_EAGER_LOAD_ENABLED, "false");
        // provide initial sources as placeholders to avoid duplicate loading
        return Arrays.asList(
            new ApolloConfigEmptyPropertySource(
                PropertySourcesConstants.APOLLO_PROPERTY_SOURCE_NAME),
            new MapPropertySource(PropertySourcesConstants.APOLLO_BOOTSTRAP_PROPERTY_SOURCE_NAME,
                Collections.unmodifiableMap(map)));
      }
      // provide initial sources as placeholders to avoid duplicate loading
      return Arrays.asList(
          new ApolloConfigEmptyPropertySource(PropertySourcesConstants.APOLLO_PROPERTY_SOURCE_NAME),
          new ApolloConfigEmptyPropertySource(
              PropertySourcesConstants.APOLLO_BOOTSTRAP_PROPERTY_SOURCE_NAME));
    }
  }