Interface BootstrapRegistry

All Known Subinterfaces:
ConfigurableBootstrapContext
All Known Implementing Classes:
DefaultBootstrapContext

public interface BootstrapRegistry
A simple object registry that is available during startup and Environment post-processing up to the point that the ApplicationContext is prepared.

Can be used to register instances that may be expensive to create, or need to be shared before the ApplicationContext is available.

The registry uses Class as a key, meaning that only a single instance of a given type can be stored.

The addCloseListener(ApplicationListener) method can be used to add a listener that can perform actions when BootstrapContext has been closed and the ApplicationContext is fully prepared. For example, an instance may choose to register itself as a regular Spring bean so that it is available for the application to use.

Since:
2.4.0
See Also:
  • Method Details

    • register

      <T> void register(Class<T> type, BootstrapRegistry.InstanceSupplier<T> instanceSupplier)
      Register a specific type with the registry. If the specified type has already been registered and has not been obtained as a singleton, it will be replaced.
      Type Parameters:
      T - the instance type
      Parameters:
      type - the instance type
      instanceSupplier - the instance supplier
    • registerIfAbsent

      <T> void registerIfAbsent(Class<T> type, BootstrapRegistry.InstanceSupplier<T> instanceSupplier)
      Register a specific type with the registry if one is not already present.
      Type Parameters:
      T - the instance type
      Parameters:
      type - the instance type
      instanceSupplier - the instance supplier
    • isRegistered

      <T> boolean isRegistered(Class<T> type)
      Return if a registration exists for the given type.
      Type Parameters:
      T - the instance type
      Parameters:
      type - the instance type
      Returns:
      true if the type has already been registered
    • getRegisteredInstanceSupplier

      <T> BootstrapRegistry.InstanceSupplier<T> getRegisteredInstanceSupplier(Class<T> type)
      Return any existing BootstrapRegistry.InstanceSupplier for the given type.
      Type Parameters:
      T - the instance type
      Parameters:
      type - the instance type
      Returns:
      the registered BootstrapRegistry.InstanceSupplier or null
    • addCloseListener

      void addCloseListener(org.springframework.context.ApplicationListener<BootstrapContextClosedEvent> listener)
      Add an ApplicationListener that will be called with a BootstrapContextClosedEvent when the BootstrapContext is closed and the ApplicationContext has been prepared.
      Parameters:
      listener - the listener to add