Interface InstanceSupplier<T>

Type Parameters:
T - the type of instance supplied by this supplier
All Superinterfaces:
Supplier<T>, ThrowingSupplier<T>
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface InstanceSupplier<T> extends ThrowingSupplier<T>
Specialized Supplier that can be set on a BeanDefinition when details about the registered bean are needed to supply the instance.
Since:
6.0
Author:
Phillip Webb
See Also:
  • Method Details

    • getWithException

      default T getWithException()
      Description copied from interface: ThrowingSupplier
      Gets a result, possibly throwing a checked exception.
      Specified by:
      getWithException in interface ThrowingSupplier<T>
      Returns:
      a result
    • get

      T get(RegisteredBean registeredBean) throws Exception
      Gets the supplied instance.
      Parameters:
      registeredBean - the registered bean requesting the instance
      Returns:
      the supplied instance
      Throws:
      Exception - on error
    • andThen

      default <V> InstanceSupplier<V> andThen(ThrowingBiFunction<RegisteredBean,? super T,? extends V> after)
      Return a composed instance supplier that first obtains the instance from this supplier, and then applied the after function to obtain the result.
      Type Parameters:
      V - the type of output of the after function, and of the composed function
      Parameters:
      after - the function to apply after the instance is obtained
      Returns:
      a composed instance supplier
    • using

      static <T> InstanceSupplier<T> using(ThrowingSupplier<T> supplier)
      Factory method to create an InstanceSupplier from a ThrowingSupplier.
      Type Parameters:
      T - the type of instance supplied by this supplier
      Parameters:
      supplier - the source supplier
      Returns:
      a new InstanceSupplier
    • of

      static <T> InstanceSupplier<T> of(InstanceSupplier<T> instanceSupplier)
      Lambda friendly method that can be used to create a InstanceSupplier and add post processors in a single call. For example: InstanceSupplier.of(registeredBean -> ...).withPostProcessor(...).
      Type Parameters:
      T - the type of instance supplied by this supplier
      Parameters:
      instanceSupplier - the source instance supplier
      Returns:
      a new InstanceSupplier