core/play/src/main/java/play/inject/BindingKey.java
public <P extends Provider<? extends T>> Binding<T> toProvider(final Class<P> provider) {
    return underlying.toProvider(provider).asJava();
  }
public <P extends Provider<? extends T>> Binding<T> toProvider(final Class<P> provider) {
    return underlying.toProvider(provider).asJava();
  }
Bind this binding key to the given provider class.

<p>The dependency injection framework will instantiate and inject this provider, and then
invoke its `get` method whenever an instance of the class is needed.