public class ServletWebServerApplicationContext extends GenericWebApplicationContext
WebApplicationContext
that can be used to bootstrap itself from a contained
ServletWebServerFactory
bean.
This context will create, initialize and run an WebServer
by searching for a
single ServletWebServerFactory
bean within the ApplicationContext
itself. The ServletWebServerFactory
is free to use standard Spring concepts
(such as dependency injection, lifecycle callbacks and property placeholder variables).
In addition, any Servlet
or Filter
beans defined in the context will be
automatically registered with the web server. In the case of a single Servlet bean, the
'/' mapping will be used. If multiple Servlet beans are found then the lowercase bean
name will be used as a mapping prefix. Any Servlet named 'dispatcherServlet' will
always be mapped to '/'. Filter beans will be mapped to all URLs ('/*').
For more advanced configuration, the context can instead define beans that implement
the ServletContextInitializer
interface (most often
ServletRegistrationBean
s and/or FilterRegistrationBean
s). To prevent
double registration, the use of ServletContextInitializer
beans will disable
automatic Servlet and Filter bean registration.
Although this context can be used directly, most developers should consider using the
AnnotationConfigServletWebServerApplicationContext
or
XmlServletWebServerApplicationContext
variants.
AnnotationConfigServletWebServerApplicationContext
,
XmlServletWebServerApplicationContext
,
ServletWebServerFactory
Modifier and Type | Class and Description |
---|---|
static class |
ServletWebServerApplicationContext.ExistingWebApplicationScopes
Utility class to store and restore any user defined scopes.
|
DefaultResourceLoader.ClassPathContextResource
Modifier and Type | Field and Description |
---|---|
static String |
DISPATCHER_SERVLET_NAME
Constant value for the DispatcherServlet bean name.
|
APPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, MESSAGE_SOURCE_BEAN_NAME
APPLICATION_CONTEXT_ID_PREFIX, SERVLET_CONFIG_BEAN_NAME
CONTEXT_ATTRIBUTES_BEAN_NAME, CONTEXT_PARAMETERS_BEAN_NAME, ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, SCOPE_APPLICATION, SCOPE_REQUEST, SCOPE_SESSION, SERVLET_CONTEXT_BEAN_NAME
CONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_BEAN_NAME
FACTORY_BEAN_PREFIX
CLASSPATH_ALL_URL_PREFIX
CLASSPATH_URL_PREFIX
Constructor and Description |
---|
ServletWebServerApplicationContext() |
Modifier and Type | Method and Description |
---|---|
protected void |
finishRefresh() |
String |
getNamespace() |
protected Resource |
getResourceByPath(String path) |
ServletConfig |
getServletConfig() |
protected Collection<ServletContextInitializer> |
getServletContextInitializerBeans()
Returns
ServletContextInitializer s that should be used with the embedded
web server. |
WebServer |
getWebServer()
Returns the
WebServer that was created by the context or null if
the server has not yet been created. |
protected ServletWebServerFactory |
getWebServerFactory()
Returns the
ServletWebServerFactory that should be used to create the
embedded WebServer . |
protected void |
onClose() |
protected void |
onRefresh() |
protected void |
postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
Register ServletContextAwareProcessor.
|
protected void |
prepareWebApplicationContext(ServletContext servletContext)
Prepare the
WebApplicationContext with the given fully loaded
ServletContext . |
void |
refresh() |
void |
setNamespace(String namespace) |
void |
setServletConfig(ServletConfig servletConfig) |
createEnvironment, getApplicationName, getConfigLocations, getResourcePatternResolver, getServletContext, getTheme, initPropertySources, setConfigLocation, setConfigLocations, setServletContext
cancelRefresh, closeBeanFactory, getAutowireCapableBeanFactory, getBeanDefinition, getBeanFactory, getClassLoader, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanNameInUse, refreshBeanFactory, registerAlias, registerBean, registerBean, registerBean, registerBean, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setClassLoader, setId, setParent, setResourceLoader
addApplicationListener, addBeanFactoryPostProcessor, assertBeanFactoryActive, close, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, getAliases, getApplicationListeners, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getStartupDate, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, registerBeanPostProcessors, registerListeners, registerShutdownHook, resetCommonCaches, setDisplayName, setEnvironment, start, stop, toString
addProtocolResolver, clearResourceCaches, getProtocolResolvers, getResourceCache
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getBeanFactory, getEnvironment, isActive, registerShutdownHook, setEnvironment, setId, setParent
getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDate
containsBeanDefinition, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation
containsLocalBean, getParentBeanFactory
containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatch
getMessage, getMessage, getMessage
publishEvent, publishEvent
getResources
getClassLoader, getResource
containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames
getAliases
public static final String DISPATCHER_SERVLET_NAME
ServletRegistrationBean
or a different bean name.protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
postProcessBeanFactory
in class GenericWebApplicationContext
ServletContextAwareProcessor
public final void refresh() throws BeansException, IllegalStateException
refresh
in interface ConfigurableApplicationContext
refresh
in class AbstractApplicationContext
BeansException
IllegalStateException
protected void onRefresh()
onRefresh
in class GenericWebApplicationContext
protected void finishRefresh()
finishRefresh
in class AbstractApplicationContext
protected void onClose()
onClose
in class AbstractApplicationContext
protected ServletWebServerFactory getWebServerFactory()
ServletWebServerFactory
that should be used to create the
embedded WebServer
. By default this method searches for a suitable bean in
the context itself.ServletWebServerFactory
(never null
)protected Collection<ServletContextInitializer> getServletContextInitializerBeans()
ServletContextInitializer
s that should be used with the embedded
web server. By default this method will first attempt to find
ServletContextInitializer
, Servlet
, Filter
and certain
EventListener
beans.protected void prepareWebApplicationContext(ServletContext servletContext)
WebApplicationContext
with the given fully loaded
ServletContext
. This method is usually called from
ServletContextInitializer.onStartup(ServletContext)
and is similar to the
functionality usually provided by a ContextLoaderListener
.servletContext
- the operational servlet contextprotected Resource getResourceByPath(String path)
getResourceByPath
in class GenericWebApplicationContext
public void setNamespace(String namespace)
setNamespace
in interface ConfigurableWebApplicationContext
setNamespace
in class GenericWebApplicationContext
public String getNamespace()
getNamespace
in interface ConfigurableWebApplicationContext
getNamespace
in class GenericWebApplicationContext
public void setServletConfig(ServletConfig servletConfig)
setServletConfig
in interface ConfigurableWebApplicationContext
setServletConfig
in class GenericWebApplicationContext
public ServletConfig getServletConfig()
getServletConfig
in interface ConfigurableWebApplicationContext
getServletConfig
in class GenericWebApplicationContext
Copyright © 2017 Pivotal Software, Inc.. All rights reserved.