Class JettyServletWebServerFactory
- java.lang.Object
- org.springframework.boot.web.server.AbstractConfigurableWebServerFactory
- org.springframework.boot.web.servlet.server.AbstractServletWebServerFactory
- org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,ConfigurableJettyWebServerFactory
,ConfigurableWebServerFactory
,ErrorPageRegistry
,WebServerFactory
,ConfigurableServletWebServerFactory
,ServletWebServerFactory
,org.springframework.context.ResourceLoaderAware
public class JettyServletWebServerFactory extends AbstractServletWebServerFactory implements ConfigurableJettyWebServerFactory, org.springframework.context.ResourceLoaderAware
ServletWebServerFactory
that can be used to create aJettyWebServer
. Can be initialized using Spring'sServletContextInitializer
s or JettyConfiguration
s.Unless explicitly configured otherwise this factory will create servers that listen for HTTP requests on port 8080.
- Since:
- 2.0.0
- See Also:
AbstractConfigurableWebServerFactory.setPort(int)
,setConfigurations(Collection)
,JettyWebServer
Field Summary
Fields inherited from class org.springframework.boot.web.servlet.server.AbstractServletWebServerFactory
logger
Constructor Summary
Constructors Constructor Description JettyServletWebServerFactory()
Create a newJettyServletWebServerFactory
instance.JettyServletWebServerFactory(int port)
Create a newJettyServletWebServerFactory
that listens for requests using the specified port.JettyServletWebServerFactory(String contextPath, int port)
Create a newJettyServletWebServerFactory
with the specified context path and port.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addConfigurations(org.eclipse.jetty.webapp.Configuration... configurations)
AddConfiguration
s that will be applied to theWebAppContext
before the server is started.protected void
addDefaultServlet(org.eclipse.jetty.webapp.WebAppContext context)
Add Jetty'sDefaultServlet
to the givenWebAppContext
.protected void
addJspServlet(org.eclipse.jetty.webapp.WebAppContext context)
Add Jetty'sJspServlet
to the givenWebAppContext
.void
addServerCustomizers(JettyServerCustomizer... customizers)
AddJettyServerCustomizer
s that will be applied to theServer
before it is started.protected void
configureWebAppContext(org.eclipse.jetty.webapp.WebAppContext context, ServletContextInitializer... initializers)
Configure the given JettyWebAppContext
for use.Collection<org.eclipse.jetty.webapp.Configuration>
getConfigurations()
Returns a mutable collection of JettyConfiguration
s that will be applied to theWebAppContext
before the server is created.protected JettyWebServer
getJettyWebServer(org.eclipse.jetty.server.Server server)
Factory method called to create theJettyWebServer
.Collection<JettyServerCustomizer>
getServerCustomizers()
Returns a mutable collection of JettyJettyServerCustomizer
s that will be applied to theServer
before the it is created.protected org.eclipse.jetty.webapp.Configuration
getServletContextInitializerConfiguration(org.eclipse.jetty.webapp.WebAppContext webAppContext, ServletContextInitializer... initializers)
Return a JettyConfiguration
that will invoke the specifiedServletContextInitializer
s.org.eclipse.jetty.util.thread.ThreadPool
getThreadPool()
Returns a JettyThreadPool
that should be used by theServer
.protected org.eclipse.jetty.webapp.Configuration[]
getWebAppContextConfigurations(org.eclipse.jetty.webapp.WebAppContext webAppContext, ServletContextInitializer... initializers)
Return the JettyConfiguration
s that should be applied to the server.WebServer
getWebServer(ServletContextInitializer... initializers)
Gets a new fully configured but pausedWebServer
instance.protected void
postProcessWebAppContext(org.eclipse.jetty.webapp.WebAppContext webAppContext)
Post process the JettyWebAppContext
before it's used with the Jetty Server.void
setAcceptors(int acceptors)
Set the number of acceptor threads to use.void
setConfigurations(Collection<? extends org.eclipse.jetty.webapp.Configuration> configurations)
Sets JettyConfiguration
s that will be applied to theWebAppContext
before the server is created.void
setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
void
setSelectors(int selectors)
Set the number of selector threads to use.void
setServerCustomizers(Collection<? extends JettyServerCustomizer> customizers)
SetsJettyServerCustomizer
s that will be applied to theServer
before it is started.void
setThreadPool(org.eclipse.jetty.util.thread.ThreadPool threadPool)
Set a JettyThreadPool
that should be used by theServer
.void
setUseForwardHeaders(boolean useForwardHeaders)
Set if x-forward-* headers should be processed.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
Constructor Detail
JettyServletWebServerFactory
public JettyServletWebServerFactory()
Create a newJettyServletWebServerFactory
instance.
JettyServletWebServerFactory
public JettyServletWebServerFactory(int port)
Create a newJettyServletWebServerFactory
that listens for requests using the specified port.- Parameters:
port
- the port to listen on
JettyServletWebServerFactory
public JettyServletWebServerFactory(String contextPath, int port)
Create a newJettyServletWebServerFactory
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()
configureWebAppContext
protected final void configureWebAppContext(org.eclipse.jetty.webapp.WebAppContext context, ServletContextInitializer... initializers)
Configure the given JettyWebAppContext
for use.- Parameters:
context
- the context to configureinitializers
- the set of initializers to apply
addDefaultServlet
protected final void addDefaultServlet(org.eclipse.jetty.webapp.WebAppContext context)
Add Jetty'sDefaultServlet
to the givenWebAppContext
.- Parameters:
context
- the jettyWebAppContext
addJspServlet
protected final void addJspServlet(org.eclipse.jetty.webapp.WebAppContext context)
Add Jetty'sJspServlet
to the givenWebAppContext
.- Parameters:
context
- the jettyWebAppContext
getWebAppContextConfigurations
protected org.eclipse.jetty.webapp.Configuration[] getWebAppContextConfigurations(org.eclipse.jetty.webapp.WebAppContext webAppContext, ServletContextInitializer... initializers)
Return the JettyConfiguration
s that should be applied to the server.- Parameters:
webAppContext
- the JettyWebAppContext
initializers
- theServletContextInitializer
s to apply- Returns:
- configurations to apply
getServletContextInitializerConfiguration
protected org.eclipse.jetty.webapp.Configuration getServletContextInitializerConfiguration(org.eclipse.jetty.webapp.WebAppContext webAppContext, ServletContextInitializer... initializers)
Return a JettyConfiguration
that will invoke the specifiedServletContextInitializer
s. By default this method will return aServletContextInitializerConfiguration
.- Parameters:
webAppContext
- the JettyWebAppContext
initializers
- theServletContextInitializer
s to apply- Returns:
- the
Configuration
instance
postProcessWebAppContext
protected void postProcessWebAppContext(org.eclipse.jetty.webapp.WebAppContext webAppContext)
Post process the JettyWebAppContext
before it's used with the Jetty Server. Subclasses can override this method to apply additional processing to theWebAppContext
.- Parameters:
webAppContext
- the JettyWebAppContext
getJettyWebServer
protected JettyWebServer getJettyWebServer(org.eclipse.jetty.server.Server server)
Factory method called to create theJettyWebServer
. Subclasses can override this method to return a differentJettyWebServer
or apply additional processing to the Jetty server.- Parameters:
server
- the Jetty server.- Returns:
- a new
JettyWebServer
instance
setResourceLoader
public void setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
- Specified by:
setResourceLoader
in interfaceorg.springframework.context.ResourceLoaderAware
setUseForwardHeaders
public void setUseForwardHeaders(boolean useForwardHeaders)
Description copied from interface:ConfigurableJettyWebServerFactory
Set if x-forward-* headers should be processed.- Specified by:
setUseForwardHeaders
in interfaceConfigurableJettyWebServerFactory
- Parameters:
useForwardHeaders
- if x-forward headers should be used
setAcceptors
public void setAcceptors(int acceptors)
Description copied from interface:ConfigurableJettyWebServerFactory
Set the number of acceptor threads to use.- Specified by:
setAcceptors
in interfaceConfigurableJettyWebServerFactory
- Parameters:
acceptors
- the number of acceptor threads to use
setSelectors
public void setSelectors(int selectors)
Description copied from interface:ConfigurableJettyWebServerFactory
Set the number of selector threads to use.- Specified by:
setSelectors
in interfaceConfigurableJettyWebServerFactory
- Parameters:
selectors
- the number of selector threads to use
setServerCustomizers
public void setServerCustomizers(Collection<? extends JettyServerCustomizer> customizers)
SetsJettyServerCustomizer
s that will be applied to theServer
before it is started. Calling this method will replace any existing customizers.- Parameters:
customizers
- the Jetty customizers to apply
getServerCustomizers
public Collection<JettyServerCustomizer> getServerCustomizers()
Returns a mutable collection of JettyJettyServerCustomizer
s that will be applied to theServer
before the it is created.- Returns:
- the
JettyServerCustomizer
s
addServerCustomizers
public void addServerCustomizers(JettyServerCustomizer... customizers)
Description copied from interface:ConfigurableJettyWebServerFactory
AddJettyServerCustomizer
s that will be applied to theServer
before it is started.- Specified by:
addServerCustomizers
in interfaceConfigurableJettyWebServerFactory
- Parameters:
customizers
- the customizers to add
setConfigurations
public void setConfigurations(Collection<? extends org.eclipse.jetty.webapp.Configuration> configurations)
Sets JettyConfiguration
s that will be applied to theWebAppContext
before the server is created. Calling this method will replace any existing configurations.- Parameters:
configurations
- the Jetty configurations to apply
getConfigurations
public Collection<org.eclipse.jetty.webapp.Configuration> getConfigurations()
Returns a mutable collection of JettyConfiguration
s that will be applied to theWebAppContext
before the server is created.- Returns:
- the Jetty
Configuration
s
addConfigurations
public void addConfigurations(org.eclipse.jetty.webapp.Configuration... configurations)
AddConfiguration
s that will be applied to theWebAppContext
before the server is started.- Parameters:
configurations
- the configurations to add
getThreadPool
public org.eclipse.jetty.util.thread.ThreadPool getThreadPool()
Returns a JettyThreadPool
that should be used by theServer
.- Returns:
- a Jetty
ThreadPool
ornull
setThreadPool
public void setThreadPool(org.eclipse.jetty.util.thread.ThreadPool threadPool)
Set a JettyThreadPool
that should be used by theServer
. If set tonull
(default), theServer
creates aThreadPool
implicitly.- Parameters:
threadPool
- a Jetty ThreadPool to be used