org.springframework.boot

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:
    BootstrapContext, ConfigurableBootstrapContext
    • Method Detail

      • register

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

        <T> void registerIfAbsent(java.lang.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(java.lang.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