# Interface BindingBuilder<T>

Type Parameters:
  `T` - An interface type of the service being bound.

public interface BindingBuilder<T>
A binding builder that helps with fluent binding creation.

Since:
  3.1

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `in(Scope scope)`
  Sets the scope of a bound instance.
  `void`
  `inSingletonScope()`
  Sets the scope of a bound instance to singleton.
  `BindingBuilder<T>`
  `to(Class<? extends T> implementation)`
  `BindingBuilder<T>`
  `toInstance(T instance)`
  `BindingBuilder<T>`
  `toProvider(Class<? extends Provider<? extends T>> providerType)`
  `BindingBuilder<T>`
  `toProviderInstance(Provider<? extends T> provider)`
  `void`
  `withoutScope()`
  Sets the scope of a bound instance to "no scope".

- ## Method Details

  - ### to

    BindingBuilder<T> to(Class<? extends T> implementation) throws DIRuntimeException
    Throws:
      `DIRuntimeException`

  - ### toInstance

    BindingBuilder<T> toInstance(T instance) throws DIRuntimeException
    Throws:
      `DIRuntimeException`

  - ### toProvider

    BindingBuilder<T> toProvider(Class<? extends Provider<? extends T>> providerType) throws DIRuntimeException
    Throws:
      `DIRuntimeException`

  - ### toProviderInstance

    BindingBuilder<T> toProviderInstance(Provider<? extends T> provider) throws DIRuntimeException
    Throws:
      `DIRuntimeException`

  - ### in

    void in(Scope scope)
    Sets the scope of a bound instance. This method is used to change the default scope which is usually a singleton to a custom scope.

  - ### inSingletonScope

    void inSingletonScope()
    Sets the scope of a bound instance to singleton. Singleton is normally the default, so calling this method explicitly is rarely needed.

  - ### withoutScope

    void withoutScope()
    Sets the scope of a bound instance to "no scope". This means that a new instance of an object will be created on every call to `Injector.getInstance(Class)`.