Class AbstractSmartLifecycle

  • All Implemented Interfaces:
    org.springframework.context.Lifecycle, org.springframework.context.Phased, org.springframework.context.SmartLifecycle
    Direct Known Subclasses:
    LoggingSmartLifecycle

    public abstract class AbstractSmartLifecycle
    extends java.lang.Object
    implements org.springframework.context.SmartLifecycle
    Abstract base class for implementing SmartLifecycle strategies.

    This class provides a skeletal implementation of the SmartLifecycle interface, making it easier to create custom lifecycle beans with specific startup and shutdown logic.

    Key Features

    • Centralizes common lifecycle state management.
    • Offers phase-based control for startup and shutdown order.
    • Ensures consistent lifecycle behavior across implementations.

    Example Usage

    {@code
     public class MyCustomLifecycle extends AbstractSmartLifecycle {
         private boolean running = false;
    Since:
    1.0.0
    Author:
    Mercy
    • Field Detail

      • EARLIEST_PHASE

        public static final int EARLIEST_PHASE
        The earliest phase
        See Also:
        Constant Field Values
      • DEFAULT_PHASE

        public static final int DEFAULT_PHASE
        Compatible with SmartLifecycle.DEFAULT_PHASE before Spring Framework 5.1
        See Also:
        SmartLifecycle.DEFAULT_PHASE, Constant Field Values
    • Constructor Detail

      • AbstractSmartLifecycle

        public AbstractSmartLifecycle()
    • Method Detail

      • start

        public final void start()
        Specified by:
        start in interface org.springframework.context.Lifecycle
      • doStart

        protected abstract void doStart()
      • stop

        public final void stop()
        Specified by:
        stop in interface org.springframework.context.Lifecycle
      • doStop

        protected abstract void doStop()
      • isRunning

        public final boolean isRunning()
        Specified by:
        isRunning in interface org.springframework.context.Lifecycle
      • isAutoStartup

        public boolean isAutoStartup()
        Specified by:
        isAutoStartup in interface org.springframework.context.SmartLifecycle
      • stop

        public void stop​(java.lang.Runnable callback)
        Specified by:
        stop in interface org.springframework.context.SmartLifecycle
      • getPhase

        public final int getPhase()
        Specified by:
        getPhase in interface org.springframework.context.Phased
        Specified by:
        getPhase in interface org.springframework.context.SmartLifecycle
      • isStarted

        public boolean isStarted()
      • setPhase

        public final void setPhase​(int phase)
      • setStarted

        protected void setStarted​(boolean started)