com.google.appengine.spi

## Annotation Type ServiceProvider

-     @Documented
      @Retention(value=RUNTIME)
      @Target(value=TYPE)
      public @interface ServiceProvider

  An annotation for service providers as described in `ServiceLoader`. The `ServiceProviderProcessor` generates the configuration files which allows service providers to be loaded with `ServiceLoader.load(Class)`. You must enable the processor, typically by specifying `"-processor com.google.appengine.spi.ServiceProviderProcessor"` as a flag to javac.

  Service providers assert that they conform to the service provider specification. Specifically they must:

  - be a non-inner, non-anonymous, concrete class
  - have a publically accessible no-arg constructor
  - implement the interface type returned by `value()`

- - ### Required Element Summary

    Required Elements
    Modifier and Type | Required Element and Description
    --- | ---
    `java.lang.Class<?>` | `value` Returns the interface implemented by this ServiceProvider.

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `int` | `precedence` Higher precedence will take priority over lower precedences for a given `value`.

- - ### Element Detail

    - #### value

          public abstract java.lang.Class<?> value

      Returns the interface implemented by this ServiceProvider.

    - #### precedence

          public abstract int precedence

      Higher precedence will take priority over lower precedences for a given `value`.
      Default:
        0