juzu.plugin.binding

## Annotation Type Binding

-     @Retention(value=RUNTIME)
      @Target(value={})
      public @interface Binding

  Declares a bean binding, i.e an external bean that is not managed by Juzu. This bean will be managed by the dependency injection container.
  Author:
    Julien Viet

- - ### Required Element Summary

    Required Elements
    Modifier and Type | Required Element and Description
    --- | ---
    `Class<?>` | `value` The bean class that will be made available for injection by the container.

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `Class<?>` | `implementation` The optional bean implementation class, when this class is provided it should satisfy one condition among those: Extend or implement the `value()` bean class Implement the `Provider` interface with a generic type `<T>` that must be a sub type of the `value()` class Implement the `ProviderFactory` interface
    `Scope` | `scope` The scope for which the bean will be bound.

- - ### Element Detail

    - #### value

          public abstract Class<?> value

      The bean class that will be made available for injection by the container.
      Returns:
        the bean class

    - #### scope

          public abstract Scope scope

      The scope for which the bean will be bound.
      Returns:
        the bean scope
      Default:
        juzu.Scope.SINGLETON

    - #### implementation

          public abstract Class<?> implementation

      The optional bean implementation class, when this class is provided it should satisfy one condition among those:

      - Extend or implement the `value()` bean class
      - Implement the `Provider` interface with a generic type `<T>` that must be a sub type of the `value()` class
      - Implement the `ProviderFactory` interface
      Returns:
        the bean implementation
      Default:
        java.lang.Object.class

Copyright © 2016 eXo Platform SAS. All rights reserved.