org.apache.cayenne.di

## Interface Injector

- All Known Implementing Classes:
    DefaultInjector

      public interface Injector

  A facade to the Cayenne DI container. To create an injector use `DIBootstrap` static methods.
  Since:
    3.1

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T> T` | `getInstance(Class<T> type)` Returns a service instance bound in the container for a specific type.
    `<T> T` | `getInstance(Key<T> key)` Returns a service instance bound in the container for a specific binding key.
    `<T> Provider<T>` | `getProvider(Class<T> type)`
    `<T> Provider<T>` | `getProvider(Key<T> key)`
    `void` | `injectMembers(Object object)` Performs field injection on a given object, ignoring constructor injection.
    `void` | `shutdown()` A lifecycle method that let's the injector's services to clean up their state and release resources.

- - ### Method Detail

    - #### getInstance

          <T> T getInstance(Class<T> type)
                     throws DIRuntimeException

      Returns a service instance bound in the container for a specific type. Throws `DIRuntimeException` if the type is not bound, or an instance can not be created.
      Throws:
        `DIRuntimeException`

    - #### getInstance

          <T> T getInstance(Key<T> key)
                     throws DIRuntimeException

      Returns a service instance bound in the container for a specific binding key. Throws `DIRuntimeException` if the key is not bound, or an instance can not be created.
      Throws:
        `DIRuntimeException`

    - #### getProvider

          <T> Provider<T> getProvider(Class<T> type)
                               throws DIRuntimeException

      Throws:
        `DIRuntimeException`

    - #### getProvider

          <T> Provider<T> getProvider(Key<T> key)
                               throws DIRuntimeException

      Throws:
        `DIRuntimeException`

    - #### injectMembers

          void injectMembers(Object object)

      Performs field injection on a given object, ignoring constructor injection. Since Cayenne DI injector returns fully injected objects, this method is rarely used directly.

      Note that using this method inside a custom DI `Provider` will most likely result in double injection, as custom provider is wrapped in a field-injecting provider by the DI container. Instead custom providers must initialize object properties manually, obtaining dependencies from Injector.

    - #### shutdown

          void shutdown()

      A lifecycle method that let's the injector's services to clean up their state and release resources. This method would normally generate a scope end event for the injector's one and only singleton scope.

Copyright © 2001–2021 Apache Cayenne. All rights reserved.