Class SingletonSupplier<T>
java.lang.Object
org.springframework.util.function.SingletonSupplier<T>
- Type Parameters:
 T- the type of results supplied by this supplier
- All Implemented Interfaces:
 Supplier<T>
A 
Supplier decorator that caches a singleton result and
 makes it available from get() (nullable) and obtain() (null-safe).
 A SingletonSupplier can be constructed via of factory methods
 or via constructors that provide a default supplier as a fallback. This is
 particularly useful for method reference suppliers, falling back to a default
 supplier for a method that returned null and caching the result.
- Since:
 - 5.1
 - Author:
 - Juergen Hoeller, Yanming Zhou
 
- 
Constructor Summary
ConstructorsConstructorDescriptionSingletonSupplier(Supplier<? extends T> instanceSupplier, Supplier<? extends T> defaultSupplier) Build aSingletonSupplierwith the given instance supplier and a default supplier for the case when the instance isnull.SingletonSupplier(T instance, Supplier<? extends T> defaultSupplier) Build aSingletonSupplierwith the given singleton instance and a default supplier for the case when the instance isnull. - 
Method Summary
Modifier and TypeMethodDescriptionget()Get the shared singleton instance for this supplier.obtain()Obtain the shared singleton instance for this supplier.static <T> SingletonSupplier<T>Build aSingletonSupplierwith the given supplier.static <T> SingletonSupplier<T>of(T instance) Build aSingletonSupplierwith the given singleton instance.static <T> SingletonSupplier<T>ofNullable(Supplier<T> supplier) Build aSingletonSupplierwith the given supplier.static <T> SingletonSupplier<T>ofNullable(T instance) Build aSingletonSupplierwith the given singleton instance. 
- 
Constructor Details
- 
SingletonSupplier
Build aSingletonSupplierwith the given singleton instance and a default supplier for the case when the instance isnull.- Parameters:
 instance- the singleton instance (potentiallynull)defaultSupplier- the default supplier as a fallback
 - 
SingletonSupplier
public SingletonSupplier(@Nullable Supplier<? extends T> instanceSupplier, Supplier<? extends T> defaultSupplier) Build aSingletonSupplierwith the given instance supplier and a default supplier for the case when the instance isnull.- Parameters:
 instanceSupplier- the immediate instance supplierdefaultSupplier- the default supplier as a fallback
 
 - 
 - 
Method Details
- 
get
Get the shared singleton instance for this supplier. - 
obtain
Obtain the shared singleton instance for this supplier.- Returns:
 - the singleton instance (never 
null) - Throws:
 IllegalStateException- in case of no instance
 - 
of
Build aSingletonSupplierwith the given singleton instance.- Parameters:
 instance- the singleton instance (nevernull)- Returns:
 - the singleton supplier (never 
null) 
 - 
ofNullable
Build aSingletonSupplierwith the given singleton instance.- Parameters:
 instance- the singleton instance (potentiallynull)- Returns:
 - the singleton supplier, or 
nullif the instance wasnull 
 - 
of
Build aSingletonSupplierwith the given supplier.- Parameters:
 supplier- the instance supplier (nevernull)- Returns:
 - the singleton supplier (never 
null) 
 - 
ofNullable
Build aSingletonSupplierwith the given supplier.- Parameters:
 supplier- the instance supplier (potentiallynull)- Returns:
 - the singleton supplier, or 
nullif the instance supplier wasnull 
 
 -