Interface InstanceSupplier<T>

Type Parameters:
T - the type of instance supplied by this supplier
All Superinterfaces:
Supplier<T>, ThrowingSupplier<T>
All Known Implementing Classes:
BeanInstanceSupplier
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, Stephane Nicoll
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
      Get the supplied instance.
      Parameters:
      registeredBean - the registered bean requesting the instance
      Returns:
      the supplied instance
      Throws:
      Exception - on error
    • getFactoryMethod

      @Nullable default Method getFactoryMethod()
      Return the factory method that this supplier uses to create the instance, or null if it is not known or this supplier uses another means.
      Returns:
      the factory method used to create the instance, or null
    • 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 applies 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
    • using

      static <T> InstanceSupplier<T> using(@Nullable Method factoryMethod, ThrowingSupplier<T> supplier)
      Factory method to create an InstanceSupplier from a ThrowingSupplier.
      Type Parameters:
      T - the type of instance supplied by this supplier
      Parameters:
      factoryMethod - the factory method being used
      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 an InstanceSupplier and add post processors in a single call. For example: InstanceSupplier.of(registeredBean -> ...).andThen(...).
      Type Parameters:
      T - the type of instance supplied by this supplier
      Parameters:
      instanceSupplier - the source instance supplier
      Returns:
      a new InstanceSupplier