Class TomcatServletWebServerFactory
- java.lang.Object
- org.springframework.boot.web.server.AbstractConfigurableWebServerFactory
- org.springframework.boot.web.servlet.server.AbstractServletWebServerFactory
- org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,ConfigurableTomcatWebServerFactory
,ConfigurableWebServerFactory
,ErrorPageRegistry
,WebServerFactory
,ConfigurableServletWebServerFactory
,ServletWebServerFactory
,org.springframework.context.ResourceLoaderAware
public class TomcatServletWebServerFactory extends AbstractServletWebServerFactory implements ConfigurableTomcatWebServerFactory, org.springframework.context.ResourceLoaderAware
AbstractServletWebServerFactory
that can be used to createTomcatWebServer
s. Can be initialized using Spring'sServletContextInitializer
s or TomcatLifecycleListener
s.Unless explicitly configured otherwise this factory will create containers that listen for HTTP requests on port 8080.
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_PROTOCOL
The class name of default protocol used.Fields inherited from class org.springframework.boot.web.servlet.server.AbstractServletWebServerFactory
logger
Constructor Summary
Constructors Constructor Description TomcatServletWebServerFactory()
Create a newTomcatServletWebServerFactory
instance.TomcatServletWebServerFactory(int port)
Create a newTomcatServletWebServerFactory
that listens for requests using the specified port.TomcatServletWebServerFactory(String contextPath, int port)
Create a newTomcatServletWebServerFactory
with the specified context path and port.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAdditionalTomcatConnectors(org.apache.catalina.connector.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(org.apache.catalina.LifecycleListener... contextLifecycleListeners)
AddLifecycleListener
s that should be added to the TomcatContext
.void
addContextValves(org.apache.catalina.Valve... contextValves)
AddValve
s that should be applied to the TomcatContext
.void
addEngineValves(org.apache.catalina.Valve... engineValves)
AddValve
s that should be applied to the TomcatEngine
.void
addTldSkipPatterns(String... patterns)
Add patterns that match jars to ignore for TLD scanning.protected void
configureContext(org.apache.catalina.Context context, ServletContextInitializer[] initializers)
Configure the TomcatContext
.protected void
customizeConnector(org.apache.catalina.connector.Connector connector)
List<org.apache.catalina.connector.Connector>
getAdditionalTomcatConnectors()
Returns a mutable collection of theConnector
s that will be added to the Tomcat.Collection<org.apache.catalina.LifecycleListener>
getContextLifecycleListeners()
Returns a mutable collection of theLifecycleListener
s that will be applied to the TomcatContext
.Collection<org.apache.catalina.Valve>
getContextValves()
Returns a mutable collection of theValve
s that will be applied to the TomcatContext
.Collection<org.apache.catalina.Valve>
getEngineValves()
Returns a mutable collection of theValve
s that will be applied to the TomcatEngine
.Set<String>
getTldSkipPatterns()
Returns a mutable set of the patterns that match jars to ignore for TLD scanning.Collection<TomcatConnectorCustomizer>
getTomcatConnectorCustomizers()
Returns a mutable collection of theTomcatConnectorCustomizer
s that will be applied to the TomcatConnector
.Collection<TomcatContextCustomizer>
getTomcatContextCustomizers()
Returns a mutable collection of theTomcatContextCustomizer
s that will be applied to the TomcatContext
.protected TomcatWebServer
getTomcatWebServer(org.apache.catalina.startup.Tomcat tomcat)
Factory method called to create theTomcatWebServer
.Charset
getUriEncoding()
Returns the character encoding to use for URL decoding.WebServer
getWebServer(ServletContextInitializer... initializers)
Gets a new fully configured but pausedWebServer
instance.protected void
postProcessContext(org.apache.catalina.Context context)
Post process the TomcatContext
before it's used with the Tomcat Server.protected void
prepareContext(org.apache.catalina.Host host, ServletContextInitializer[] initializers)
void
setBackgroundProcessorDelay(int delay)
Sets the background processor delay in seconds.void
setBaseDirectory(File baseDirectory)
Set the Tomcat base directory.void
setContextLifecycleListeners(Collection<? extends org.apache.catalina.LifecycleListener> contextLifecycleListeners)
SetLifecycleListener
s that should be applied to the TomcatContext
.void
setContextValves(Collection<? extends org.apache.catalina.Valve> contextValves)
SetValve
s that should be applied to the TomcatContext
.void
setEngineValves(Collection<? extends org.apache.catalina.Valve> engineValves)
SetValve
s that should be applied to the TomcatEngine
.void
setProtocol(String protocol)
The Tomcat protocol to use when create theConnector
.void
setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
void
setTldSkipPatterns(Collection<String> patterns)
Set the patterns that match jars to ignore for TLD scanning.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
setUriEncoding(Charset uriEncoding)
Set the character encoding to use for URL decoding.Methods inherited from class org.springframework.boot.web.servlet.server.AbstractServletWebServerFactory
addInitializers, getContextPath, getDisplayName, getDocumentRoot, getInitParameters, getJsp, getLocaleCharsetMappings, getMimeMappings, getSession, getUrlsOfJarsWithMetaInfResources, getValidDocumentRoot, getValidSessionStoreDir, getValidSessionStoreDir, isRegisterDefaultServlet, mergeInitializers, setContextPath, setDisplayName, setDocumentRoot, setInitializers, setInitParameters, setJsp, setLocaleCharsetMappings, setMimeMappings, setRegisterDefaultServlet, setSession, shouldRegisterJspServlet
Methods inherited from class org.springframework.boot.web.server.AbstractConfigurableWebServerFactory
addErrorPages, createTempDir, getAddress, getCompression, getErrorPages, getHttp2, getPort, getServerHeader, getSsl, getSslStoreProvider, setAddress, setCompression, setErrorPages, setHttp2, setPort, setServerHeader, setSsl, setSslStoreProvider
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, setSsl, setSslStoreProvider
Methods inherited from interface org.springframework.boot.web.server.ErrorPageRegistry
addErrorPages
Field Detail
DEFAULT_PROTOCOL
public static final String DEFAULT_PROTOCOL
The class name of default protocol used.- See Also:
- Constant Field Values
Constructor Detail
TomcatServletWebServerFactory
public TomcatServletWebServerFactory()
Create a newTomcatServletWebServerFactory
instance.
TomcatServletWebServerFactory
public TomcatServletWebServerFactory(int port)
Create a newTomcatServletWebServerFactory
that listens for requests using the specified port.- Parameters:
port
- the port to listen on
TomcatServletWebServerFactory
public TomcatServletWebServerFactory(String contextPath, int port)
Create a newTomcatServletWebServerFactory
with the specified context path and port.- Parameters:
contextPath
- the root context pathport
- the port to listen on
Method Detail
getWebServer
public WebServer getWebServer(ServletContextInitializer... initializers)
Description copied from interface:ServletWebServerFactory
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 interfaceServletWebServerFactory
- Parameters:
initializers
-ServletContextInitializer
s that should be applied as the server starts- Returns:
- a fully configured and started
WebServer
- See Also:
WebServer.stop()
prepareContext
protected void prepareContext(org.apache.catalina.Host host, ServletContextInitializer[] initializers)
customizeConnector
protected void customizeConnector(org.apache.catalina.connector.Connector connector)
configureContext
protected void configureContext(org.apache.catalina.Context context, ServletContextInitializer[] initializers)
Configure the TomcatContext
.- Parameters:
context
- the Tomcat contextinitializers
- initializers to apply
postProcessContext
protected void postProcessContext(org.apache.catalina.Context context)
Post process the TomcatContext
before it's used with the Tomcat Server. Subclasses can override this method to apply additional processing to theContext
.- Parameters:
context
- the TomcatContext
getTomcatWebServer
protected TomcatWebServer getTomcatWebServer(org.apache.catalina.startup.Tomcat tomcat)
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
setResourceLoader
public void setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
- Specified by:
setResourceLoader
in interfaceorg.springframework.context.ResourceLoaderAware
setBaseDirectory
public void setBaseDirectory(File baseDirectory)
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
getTldSkipPatterns
public Set<String> getTldSkipPatterns()
Returns a mutable set of the patterns that match jars to ignore for TLD scanning.- Returns:
- the list of jars to ignore for TLD scanning
setTldSkipPatterns
public void setTldSkipPatterns(Collection<String> patterns)
Set the patterns that match jars to ignore for TLD scanning. See Tomcat's catalina.properties for typical values. Defaults to a list drawn from that source.- Parameters:
patterns
- the jar patterns to skip when scanning for TLDs etc
addTldSkipPatterns
public void addTldSkipPatterns(String... patterns)
Add patterns that match jars to ignore for TLD scanning. See Tomcat's catalina.properties for typical values.- Parameters:
patterns
- the additional jar patterns to skip when scanning for TLDs etc
setProtocol
public void setProtocol(String protocol)
The Tomcat protocol to use when create theConnector
.- Parameters:
protocol
- the protocol- See Also:
Connector(String)
setEngineValves
public void setEngineValves(Collection<? extends org.apache.catalina.Valve> engineValves)
SetValve
s that should be applied to the TomcatEngine
. Calling this method will replace any existing valves.- Parameters:
engineValves
- the valves to set
getEngineValves
public Collection<org.apache.catalina.Valve> getEngineValves()
Returns a mutable collection of theValve
s that will be applied to the TomcatEngine
.- Returns:
- the engine valves that will be applied
addEngineValves
public void addEngineValves(org.apache.catalina.Valve... engineValves)
Description copied from interface:ConfigurableTomcatWebServerFactory
AddValve
s that should be applied to the TomcatEngine
.- Specified by:
addEngineValves
in interfaceConfigurableTomcatWebServerFactory
- Parameters:
engineValves
- the valves to add
setContextValves
public void setContextValves(Collection<? extends org.apache.catalina.Valve> contextValves)
SetValve
s that should be applied to the TomcatContext
. Calling this method will replace any existing valves.- Parameters:
contextValves
- the valves to set
getContextValves
public Collection<org.apache.catalina.Valve> getContextValves()
Returns a mutable collection of theValve
s that will be applied to the TomcatContext
.- Returns:
- the context valves that will be applied
- See Also:
getEngineValves()
addContextValves
public void addContextValves(org.apache.catalina.Valve... contextValves)
AddValve
s that should be applied to the TomcatContext
.- Parameters:
contextValves
- the valves to add
setContextLifecycleListeners
public void setContextLifecycleListeners(Collection<? extends org.apache.catalina.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
public Collection<org.apache.catalina.LifecycleListener> 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
public void addContextLifecycleListeners(org.apache.catalina.LifecycleListener... contextLifecycleListeners)
AddLifecycleListener
s that should be added to the TomcatContext
.- Parameters:
contextLifecycleListeners
- the listeners to add
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
public Collection<TomcatContextCustomizer> getTomcatContextCustomizers()
Returns a mutable collection of theTomcatContextCustomizer
s that will be applied to the TomcatContext
.- Returns:
- the listeners that will be applied
addContextCustomizers
public void addContextCustomizers(TomcatContextCustomizer... tomcatContextCustomizers)
Description copied from interface:ConfigurableTomcatWebServerFactory
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
public void addConnectorCustomizers(TomcatConnectorCustomizer... tomcatConnectorCustomizers)
Description copied from interface:ConfigurableTomcatWebServerFactory
AddTomcatConnectorCustomizer
s that should be added to the TomcatConnector
.- Specified by:
addConnectorCustomizers
in interfaceConfigurableTomcatWebServerFactory
- Parameters:
tomcatConnectorCustomizers
- the customizers to add
getTomcatConnectorCustomizers
public Collection<TomcatConnectorCustomizer> getTomcatConnectorCustomizers()
Returns a mutable collection of theTomcatConnectorCustomizer
s that will be applied to the TomcatConnector
.- Returns:
- the customizers that will be applied
addAdditionalTomcatConnectors
public void addAdditionalTomcatConnectors(org.apache.catalina.connector.Connector... connectors)
AddConnector
s in addition to the default connector, e.g. for SSL or AJP- Parameters:
connectors
- the connectors to add
getAdditionalTomcatConnectors
public List<org.apache.catalina.connector.Connector> getAdditionalTomcatConnectors()
Returns a mutable collection of theConnector
s that will be added to the Tomcat.- Returns:
- the additionalTomcatConnectors
setUriEncoding
public void setUriEncoding(Charset uriEncoding)
Description copied from interface:ConfigurableTomcatWebServerFactory
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
public Charset getUriEncoding()
Returns the character encoding to use for URL decoding.- Returns:
- the URI encoding
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