@Override public void initialize(GenericApplicationContext context) {
    ConfigurableEnvironment env = context.getEnvironment();
    if ("false".equalsIgnoreCase(env.getProperty(PROPERTY_NAME_ACTUATOR_ENABLED))) {
      LOG.debug("skipping actuator as it is disabled");
      return;
    }

    // At this point in the life-cycle, env can directly resolve plain properties, like the boolean
    // above. If you tried to resolve a property bound by a yaml list, it returns null, as they are
    // not yet bound.
    //
    // As we are in a configurable environment, we can bind lists properties. We expect this to take
    // includes from PROPERTY_NAME_ACTUATOR_INCLUDE yaml path of zipkin-server-shared.yml.
    String[] includes =
      Binder.get(env).bind(PROPERTY_NAME_ACTUATOR_INCLUDE, String[].class).orElse(null);
    if (includes == null || includes.length == 0) {
      LOG.debug("no actuator configuration found under path {}", PROPERTY_NAME_ACTUATOR_INCLUDE);
      return;
    }

    LOG.debug("attempting to load actuator configuration: {}", Arrays.toString(includes));
    try {
      context.registerBean(Class.forName(actuatorImplClass));
    } catch (Exception e) {
      LOG.debug("skipping actuator as implementation is not available", e);
      return;
    }

    for (String include : includes) {
      try {
        context.registerBean(Class.forName(include));
      } catch (Exception e) {
        // Skip any classes that didn't match due to drift
        LOG.debug("skipping unloadable actuator config {}", include, e);
      }
    }
  }
When auto-configuration is enabled, actuator and all of its subordinate endpoints such as {@code
BeansEndpointAutoConfiguration} load, subject to further conditions like {@code
management.endpoint.health.enabled=false}. When auto-configuration is disabled, these
configuration discovered indirectly via {@code META-INF/spring.factories} are no longer loaded.
This type helps load the actuator functionality we currently support without a compilation
dependency on actuator, and without relying on auto-configuration being enabled.

<p><h3>Implementation note</h3>
<p>It may be possible to re-implement this as {@link ImportSelector} to provide {@link
#ACTUATOR_IMPL_CLASS} and the endpoint configuration types from {@link
#PROPERTY_NAME_ACTUATOR_INCLUDE}.
zipkin-server/src/main/java/zipkin2/server/internal/ZipkinActuatorImporter.java