## Uses of Interface
org.springframework.context.SmartLifecycle

- Packages that use SmartLifecycle
  Package | Description
  --- | ---
  org.springframework.jca.endpoint | This package provides a facility for generic JCA message endpoint management.
  org.springframework.jms.config | Support package for declarative messaging configuration, with Java configuration and XML schema support.
  org.springframework.jms.listener | This package contains the base message listener container facility.
  org.springframework.jms.listener.endpoint | This package provides JCA-based endpoint management for JMS message listeners.
  org.springframework.messaging.simp.annotation.support | Support classes for handling messages from simple messaging protocols (like STOMP).
  org.springframework.messaging.simp.broker | Provides a "simple" message broker implementation along with an abstract base class and other supporting types such as a registry for subscriptions.
  org.springframework.messaging.simp.stomp | Generic support for simple messaging protocols (like STOMP).
  org.springframework.messaging.simp.user | Support for handling messages to "user" destinations (i.e.
  org.springframework.scheduling.quartz | Support classes for the open source scheduler Quartz, allowing to set up Quartz Schedulers, JobDetails and Triggers as beans in a Spring context.
  org.springframework.web.socket.client | Client-side abstractions for WebSocket applications.
  org.springframework.web.socket.client.standard | Client-side classes for use with standard Java WebSocket endpoints.
  org.springframework.web.socket.messaging | WebSocket integration for Spring's messaging module.
  org.springframework.web.socket.server.support | Server-side support classes including container-specific strategies for upgrading a request.

- - ### Uses of SmartLifecycle in org.springframework.jca.endpoint

    Classes in org.springframework.jca.endpoint that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `GenericMessageEndpointManager` Generic bean that manages JCA 1.7 message endpoints within a Spring application context, activating and deactivating the endpoint as part of the application context's lifecycle.

  - ### Uses of SmartLifecycle in org.springframework.jms.config

    Classes in org.springframework.jms.config that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `JmsListenerEndpointRegistry` Creates the necessary `MessageListenerContainer` instances for the registered endpoints.

  - ### Uses of SmartLifecycle in org.springframework.jms.listener

    Subinterfaces of SmartLifecycle in org.springframework.jms.listener
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `MessageListenerContainer` Internal abstraction used by the framework representing a message listener container.

    Classes in org.springframework.jms.listener that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractJmsListeningContainer` Common base class for all containers which need to implement listening based on a JMS Connection (either shared or freshly obtained for each attempt).
    `class` | `AbstractMessageListenerContainer` Abstract base class for Spring message listener container implementations.
    `class` | `AbstractPollingMessageListenerContainer` Base class for listener container implementations which are based on polling.
    `class` | `DefaultMessageListenerContainer` Message listener container variant that uses plain JMS client APIs, specifically a loop of `MessageConsumer.receive()` calls that also allow for transactional reception of messages (registering them with XA transactions).
    `class` | `SimpleMessageListenerContainer` Message listener container that uses the plain JMS client API's `MessageConsumer.setMessageListener()` method to create concurrent MessageConsumers for the specified listeners.

  - ### Uses of SmartLifecycle in org.springframework.jms.listener.endpoint

    Classes in org.springframework.jms.listener.endpoint that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `JmsMessageEndpointManager` Extension of the generic JCA 1.5 `GenericMessageEndpointManager`, adding JMS-specific support for ActivationSpec configuration.

  - ### Uses of SmartLifecycle in org.springframework.messaging.simp.annotation.support

    Classes in org.springframework.messaging.simp.annotation.support that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SimpAnnotationMethodMessageHandler` A handler for messages delegating to `@MessageMapping` and `@SubscribeMapping` annotated methods.

  - ### Uses of SmartLifecycle in org.springframework.messaging.simp.broker

    Classes in org.springframework.messaging.simp.broker that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractBrokerMessageHandler` Abstract base class for a `MessageHandler` that broker messages to registered subscribers.
    `class` | `SimpleBrokerMessageHandler` A "simple" message broker that recognizes the message types defined in `SimpMessageType`, keeps track of subscriptions with the help of a `SubscriptionRegistry` and sends messages to subscribers.

  - ### Uses of SmartLifecycle in org.springframework.messaging.simp.stomp

    Classes in org.springframework.messaging.simp.stomp that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `StompBrokerRelayMessageHandler` A `MessageHandler` that handles messages by forwarding them to a STOMP broker.

  - ### Uses of SmartLifecycle in org.springframework.messaging.simp.user

    Classes in org.springframework.messaging.simp.user that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `UserDestinationMessageHandler` `MessageHandler` with support for "user" destinations.

  - ### Uses of SmartLifecycle in org.springframework.scheduling.quartz

    Classes in org.springframework.scheduling.quartz that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SchedulerFactoryBean` `FactoryBean` that creates and configures a Quartz `Scheduler`, manages its lifecycle as part of the Spring application context, and exposes the Scheduler as bean reference for dependency injection.

  - ### Uses of SmartLifecycle in org.springframework.web.socket.client

    Classes in org.springframework.web.socket.client that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ConnectionManagerSupport` Base class for a connection manager that automates the process of connecting to a WebSocket server with the Spring ApplicationContext lifecycle.
    `class` | `WebSocketConnectionManager` WebSocket `connection manager` that connects to the server via `WebSocketClient` and handles the session with a `WebSocketHandler`.

  - ### Uses of SmartLifecycle in org.springframework.web.socket.client.standard

    Classes in org.springframework.web.socket.client.standard that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AnnotatedEndpointConnectionManager` WebSocket `connection manager` that connects to the server via `WebSocketContainer` and handles the session with an `@ClientEndpoint` endpoint.
    `class` | `EndpointConnectionManager` WebSocket `connection manager` that connects to the server via `WebSocketContainer` and handles the session with an `Endpoint`.

  - ### Uses of SmartLifecycle in org.springframework.web.socket.messaging

    Classes in org.springframework.web.socket.messaging that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SubProtocolWebSocketHandler` An implementation of `WebSocketHandler` that delegates incoming WebSocket messages to a `SubProtocolHandler` along with a `MessageChannel` to which the sub-protocol handler can send messages from WebSocket clients to the application.
    `class` | `WebSocketAnnotationMethodMessageHandler` A subclass of `SimpAnnotationMethodMessageHandler` to provide support for `ControllerAdvice` with global `@MessageExceptionHandler` methods.
    `class` | `WebSocketStompClient` A STOMP over WebSocket client that connects using an implementation of `WebSocketClient` including `SockJsClient`.

  - ### Uses of SmartLifecycle in org.springframework.web.socket.server.support

    Classes in org.springframework.web.socket.server.support that implement SmartLifecycle
    Modifier and Type | Class and Description
    --- | ---
    `class` | `WebSocketHandlerMapping` Extension of `SimpleUrlHandlerMapping` with support for more precise mapping of WebSocket handshake requests to handlers of type `WebSocketHttpRequestHandler`.