Class TomcatReactiveWebServerFactory
java.lang.Object
org.springframework.boot.web.server.AbstractConfigurableWebServerFactory
org.springframework.boot.web.reactive.server.AbstractReactiveWebServerFactory
org.springframework.boot.web.embedded.tomcat.TomcatReactiveWebServerFactory
- All Implemented Interfaces:
ConfigurableTomcatWebServerFactory
,ConfigurableReactiveWebServerFactory
,ReactiveWebServerFactory
,ConfigurableWebServerFactory
,ErrorPageRegistry
,WebServerFactory
public class TomcatReactiveWebServerFactory
extends AbstractReactiveWebServerFactory
implements ConfigurableTomcatWebServerFactory
ReactiveWebServerFactory
that can be used to create a TomcatWebServer
.- Since:
- 2.0.0
- Author:
- Brian Clozel, HaiTao Zhang, Moritz Halbritter
-
Field Summary
-
Constructor Summary
ConstructorDescriptionCreate a newTomcatReactiveWebServerFactory
instance.TomcatReactiveWebServerFactory
(int port) Create a newTomcatReactiveWebServerFactory
that listens for requests using the specified port. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAdditionalTomcatConnectors
(Connector... connectors) AddConnector
s in addition to the default connector, e.g.void
addConnectorCustomizers
(TomcatConnectorCustomizer... tomcatConnectorCustomizers) AddTomcatConnectorCustomizer
s that should be added to the TomcatConnector
.void
addContextCustomizers
(TomcatContextCustomizer... tomcatContextCustomizers) AddTomcatContextCustomizer
s that should be added to the TomcatContext
.void
addContextLifecycleListeners
(LifecycleListener... contextLifecycleListeners) AddLifecycleListener
s that should be added to the TomcatContext
.void
addEngineValves
(Valve... engineValves) void
addProtocolHandlerCustomizers
(TomcatProtocolHandlerCustomizer<?>... tomcatProtocolHandlerCustomizers) AddTomcatProtocolHandlerCustomizer
s that should be added to the TomcatConnector
.protected void
configureContext
(Context context) Configure the TomcatContext
.protected void
customizeConnector
(Connector connector) Returns a mutable collection of theConnector
s that will be added to the Tomcat.Returns a mutable collection of theLifecycleListener
s that will be applied to the TomcatContext
.Returns a mutable collection of theTomcatConnectorCustomizer
s that will be applied to the TomcatConnector
.Returns a mutable collection of theTomcatContextCustomizer
s that will be applied to the TomcatContext
.Returns a mutable collection of theTomcatProtocolHandlerCustomizer
s that will be applied to the TomcatConnector
.protected TomcatWebServer
getTomcatWebServer
(Tomcat tomcat) Factory method called to create theTomcatWebServer
.Returns the character encoding to use for URL decoding.getWebServer
(HttpHandler httpHandler) Gets a new fully configured but pausedWebServer
instance.protected void
prepareContext
(Host host, TomcatHttpHandlerAdapter servlet) void
setBackgroundProcessorDelay
(int delay) Sets the background processor delay in seconds.void
setBaseDirectory
(File baseDirectory) Set the Tomcat base directory.void
setContextLifecycleListeners
(Collection<? extends LifecycleListener> contextLifecycleListeners) SetLifecycleListener
s that should be applied to the TomcatContext
.void
setDisableMBeanRegistry
(boolean disableMBeanRegistry) Set whether the factory should disable Tomcat's MBean registry prior to creating the server.void
setProtocol
(String protocol) The Tomcat protocol to use when create theConnector
.void
setTomcatConnectorCustomizers
(Collection<? extends TomcatConnectorCustomizer> tomcatConnectorCustomizers) SetTomcatConnectorCustomizer
s that should be applied to the TomcatConnector
.void
setTomcatContextCustomizers
(Collection<? extends TomcatContextCustomizer> tomcatContextCustomizers) SetTomcatContextCustomizer
s that should be applied to the TomcatContext
.void
setTomcatProtocolHandlerCustomizers
(Collection<? extends TomcatProtocolHandlerCustomizer<?>> tomcatProtocolHandlerCustomizers) SetTomcatProtocolHandlerCustomizer
s that should be applied to the TomcatConnector
.void
setUriEncoding
(Charset uriEncoding) Set the character encoding to use for URL decoding.Methods inherited from class org.springframework.boot.web.server.AbstractConfigurableWebServerFactory
addErrorPages, createTempDir, getAddress, getCompression, getErrorPages, getHttp2, getPort, getServerHeader, getShutdown, getSsl, getSslBundle, getSslBundles, setAddress, setCompression, setErrorPages, setHttp2, setPort, setServerHeader, setShutdown, setSsl, setSslBundles
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.boot.web.server.ConfigurableWebServerFactory
setAddress, setCompression, setErrorPages, setHttp2, setPort, setServerHeader, setShutdown, setSsl, setSslBundles
Methods inherited from interface org.springframework.boot.web.server.ErrorPageRegistry
addErrorPages
-
Field Details
-
DEFAULT_PROTOCOL
The class name of default protocol used.- See Also:
-
-
Constructor Details
-
TomcatReactiveWebServerFactory
public TomcatReactiveWebServerFactory()Create a newTomcatReactiveWebServerFactory
instance. -
TomcatReactiveWebServerFactory
public TomcatReactiveWebServerFactory(int port) Create a newTomcatReactiveWebServerFactory
that listens for requests using the specified port.- Parameters:
port
- the port to listen on
-
-
Method Details
-
getWebServer
Description copied from interface:ReactiveWebServerFactory
Gets a new fully configured but pausedWebServer
instance. Clients should not be able to connect to the returned server untilWebServer.start()
is called (which happens when theApplicationContext
has been fully refreshed).- Specified by:
getWebServer
in interfaceReactiveWebServerFactory
- Parameters:
httpHandler
- the HTTP handler in charge of processing requests- Returns:
- a fully configured and started
WebServer
- See Also:
-
prepareContext
-
configureContext
Configure the TomcatContext
.- Parameters:
context
- the Tomcat context
-
customizeConnector
-
setBaseDirectory
Description copied from interface:ConfigurableTomcatWebServerFactory
Set the Tomcat base directory. If not specified a temporary directory will be used.- Specified by:
setBaseDirectory
in interfaceConfigurableTomcatWebServerFactory
- Parameters:
baseDirectory
- the tomcat base directory
-
setBackgroundProcessorDelay
public void setBackgroundProcessorDelay(int delay) Description copied from interface:ConfigurableTomcatWebServerFactory
Sets the background processor delay in seconds.- Specified by:
setBackgroundProcessorDelay
in interfaceConfigurableTomcatWebServerFactory
- Parameters:
delay
- the delay in seconds
-
setTomcatContextCustomizers
public void setTomcatContextCustomizers(Collection<? extends TomcatContextCustomizer> tomcatContextCustomizers) SetTomcatContextCustomizer
s that should be applied to the TomcatContext
. Calling this method will replace any existing customizers.- Parameters:
tomcatContextCustomizers
- the customizers to set
-
getTomcatContextCustomizers
Returns a mutable collection of theTomcatContextCustomizer
s that will be applied to the TomcatContext
.- Returns:
- the listeners that will be applied
-
addContextCustomizers
AddTomcatContextCustomizer
s that should be added to the TomcatContext
.- Specified by:
addContextCustomizers
in interfaceConfigurableTomcatWebServerFactory
- Parameters:
tomcatContextCustomizers
- the customizers to add
-
setTomcatConnectorCustomizers
public void setTomcatConnectorCustomizers(Collection<? extends TomcatConnectorCustomizer> tomcatConnectorCustomizers) SetTomcatConnectorCustomizer
s that should be applied to the TomcatConnector
. Calling this method will replace any existing customizers.- Parameters:
tomcatConnectorCustomizers
- the customizers to set
-
addConnectorCustomizers
AddTomcatConnectorCustomizer
s that should be added to the TomcatConnector
.- Specified by:
addConnectorCustomizers
in interfaceConfigurableTomcatWebServerFactory
- Parameters:
tomcatConnectorCustomizers
- the customizers to add
-
getTomcatConnectorCustomizers
Returns a mutable collection of theTomcatConnectorCustomizer
s that will be applied to the TomcatConnector
.- Returns:
- the customizers that will be applied
-
setTomcatProtocolHandlerCustomizers
public void setTomcatProtocolHandlerCustomizers(Collection<? extends TomcatProtocolHandlerCustomizer<?>> tomcatProtocolHandlerCustomizers) SetTomcatProtocolHandlerCustomizer
s that should be applied to the TomcatConnector
. Calling this method will replace any existing customizers.- Parameters:
tomcatProtocolHandlerCustomizers
- the customizers to set- Since:
- 2.2.0
-
addProtocolHandlerCustomizers
public void addProtocolHandlerCustomizers(TomcatProtocolHandlerCustomizer<?>... tomcatProtocolHandlerCustomizers) AddTomcatProtocolHandlerCustomizer
s that should be added to the TomcatConnector
.- Specified by:
addProtocolHandlerCustomizers
in interfaceConfigurableTomcatWebServerFactory
- Parameters:
tomcatProtocolHandlerCustomizers
- the customizers to add- Since:
- 2.2.0
-
getTomcatProtocolHandlerCustomizers
Returns a mutable collection of theTomcatProtocolHandlerCustomizer
s that will be applied to the TomcatConnector
.- Returns:
- the customizers that will be applied
- Since:
- 2.2.0
-
addAdditionalTomcatConnectors
AddConnector
s in addition to the default connector, e.g. for SSL or AJP.Connector customizers
are not applied to connectors added this way.- Parameters:
connectors
- the connectors to add- Since:
- 2.2.0
-
getAdditionalTomcatConnectors
Returns a mutable collection of theConnector
s that will be added to the Tomcat.- Returns:
- the additionalTomcatConnectors
- Since:
- 2.2.0
-
addEngineValves
Description copied from interface:ConfigurableTomcatWebServerFactory
- Specified by:
addEngineValves
in interfaceConfigurableTomcatWebServerFactory
- Parameters:
engineValves
- the valves to add
-
getEngineValves
- Returns:
- the engine valves that will be applied
-
setUriEncoding
Set the character encoding to use for URL decoding. If not specified 'UTF-8' will be used.- Specified by:
setUriEncoding
in interfaceConfigurableTomcatWebServerFactory
- Parameters:
uriEncoding
- the uri encoding to set
-
getUriEncoding
Returns the character encoding to use for URL decoding.- Returns:
- the URI encoding
-
setContextLifecycleListeners
public void setContextLifecycleListeners(Collection<? extends LifecycleListener> contextLifecycleListeners) SetLifecycleListener
s that should be applied to the TomcatContext
. Calling this method will replace any existing listeners.- Parameters:
contextLifecycleListeners
- the listeners to set
-
getContextLifecycleListeners
Returns a mutable collection of theLifecycleListener
s that will be applied to the TomcatContext
.- Returns:
- the context lifecycle listeners that will be applied
-
addContextLifecycleListeners
AddLifecycleListener
s that should be added to the TomcatContext
.- Parameters:
contextLifecycleListeners
- the listeners to add
-
getTomcatWebServer
Factory method called to create theTomcatWebServer
. Subclasses can override this method to return a differentTomcatWebServer
or apply additional processing to the Tomcat server.- Parameters:
tomcat
- the Tomcat server.- Returns:
- a new
TomcatWebServer
instance
-
setProtocol
The Tomcat protocol to use when create theConnector
.- Parameters:
protocol
- the protocol- See Also:
-
setDisableMBeanRegistry
public void setDisableMBeanRegistry(boolean disableMBeanRegistry) Set whether the factory should disable Tomcat's MBean registry prior to creating the server.- Parameters:
disableMBeanRegistry
- whether to disable the MBean registry- Since:
- 2.2.0
-