Class GroovyWebApplicationContext
- All Implemented Interfaces:
groovy.lang.GroovyObject,Closeable,AutoCloseable,Aware,BeanFactory,BeanNameAware,HierarchicalBeanFactory,InitializingBean,ListableBeanFactory,ApplicationContext,ApplicationEventPublisher,ConfigurableApplicationContext,Lifecycle,MessageSource,EnvironmentCapable,ResourceLoader,ResourcePatternResolver,ThemeSource,ConfigurableWebApplicationContext,WebApplicationContext
WebApplicationContext implementation which takes
its configuration from Groovy bean definition scripts and/or XML files, as understood by
a GroovyBeanDefinitionReader.
This is essentially the equivalent of
GenericGroovyApplicationContext
for a web environment.
By default, the configuration will be taken from "/WEB-INF/applicationContext.groovy" for the root context, and "/WEB-INF/test-servlet.groovy" for a context with the namespace "test-servlet" (like for a DispatcherServlet instance with the servlet-name "test").
The config location defaults can be overridden via the "contextConfigLocation"
context-param of ContextLoader and servlet
init-param of FrameworkServlet. Config locations
can either denote concrete files like "/WEB-INF/context.groovy" or Ant-style patterns
like "/WEB-INF/*-context.groovy" (see PathMatcher
javadoc for pattern details). Note that ".xml" files will be parsed as XML content;
all other kinds of resources will be parsed as Groovy scripts.
Note: In case of multiple config locations, later bean definitions will override ones defined in earlier loaded files. This can be leveraged to deliberately override certain bean definitions via an extra Groovy script.
For a WebApplicationContext that reads in a different bean definition format,
create an analogous subclass of AbstractRefreshableWebApplicationContext.
Such a context implementation can be specified as "contextClass" context-param
for ContextLoader or "contextClass" init-param for FrameworkServlet.
- Since:
- 4.1
- Author:
- Juergen Hoeller
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.core.io.DefaultResourceLoader
DefaultResourceLoader.ClassPathContextResource -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringDefault config location for the root context.static final StringDefault prefix for building a config location for a namespace.static final StringDefault suffix for building a config location for a namespace.Fields inherited from class org.springframework.context.support.AbstractApplicationContext
APPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAMEFields inherited from interface org.springframework.beans.factory.BeanFactory
FACTORY_BEAN_PREFIXFields inherited from interface org.springframework.context.ConfigurableApplicationContext
APPLICATION_STARTUP_BEAN_NAME, CONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SHUTDOWN_HOOK_THREAD_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_BEAN_NAMEFields inherited from interface org.springframework.web.context.ConfigurableWebApplicationContext
APPLICATION_CONTEXT_ID_PREFIX, SERVLET_CONFIG_BEAN_NAMEFields inherited from interface org.springframework.core.io.ResourceLoader
CLASSPATH_URL_PREFIXFields inherited from interface org.springframework.core.io.support.ResourcePatternResolver
CLASSPATH_ALL_URL_PREFIXFields inherited from interface org.springframework.web.context.WebApplicationContext
CONTEXT_ATTRIBUTES_BEAN_NAME, CONTEXT_PARAMETERS_BEAN_NAME, ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, SCOPE_APPLICATION, SCOPE_REQUEST, SCOPE_SESSION, SERVLET_CONTEXT_BEAN_NAME -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected String[]The default location for the root context is "/WEB-INF/applicationContext.groovy", and "/WEB-INF/test-servlet.groovy" for a context with the namespace "test-servlet" (like for a DispatcherServlet instance with the servlet-name "test").groovy.lang.MetaClassgetProperty(String property) protected voidinitBeanDefinitionReader(GroovyBeanDefinitionReader beanDefinitionReader) Initialize the bean definition reader used for loading the bean definitions of this context.invokeMethod(String name, Object args) protected voidLoad the bean definitions with the given GroovyBeanDefinitionReader.protected voidloadBeanDefinitions(DefaultListableBeanFactory beanFactory) Loads the bean definitions via an GroovyBeanDefinitionReader.voidsetMetaClass(groovy.lang.MetaClass metaClass) voidsetProperty(String property, Object newValue) Methods inherited from class org.springframework.web.context.support.AbstractRefreshableWebApplicationContext
createEnvironment, getApplicationName, getConfigLocations, getNamespace, getResourceByPath, getResourcePatternResolver, getServletConfig, getServletContext, getTheme, initPropertySources, onRefresh, postProcessBeanFactory, setNamespace, setServletConfig, setServletContextMethods inherited from class org.springframework.context.support.AbstractRefreshableConfigApplicationContext
afterPropertiesSet, resolvePath, setBeanName, setConfigLocation, setConfigLocations, setIdMethods inherited from class org.springframework.context.support.AbstractRefreshableApplicationContext
assertBeanFactoryActive, cancelRefresh, closeBeanFactory, createBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferencesMethods inherited from class org.springframework.context.support.AbstractApplicationContext
addApplicationListener, addBeanFactoryPostProcessor, close, containsBean, containsBeanDefinition, containsLocalBean, destroyBeans, doClose, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationStartup, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResources, getStartupDate, getType, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, removeApplicationListener, resetCommonCaches, setApplicationStartup, setDisplayName, setEnvironment, setParent, start, stop, toStringMethods inherited from class org.springframework.core.io.DefaultResourceLoader
addProtocolResolver, clearResourceCaches, getClassLoader, getProtocolResolvers, getResource, getResourceCache, setClassLoaderMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.context.ApplicationContext
getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDateMethods inherited from interface org.springframework.context.ApplicationEventPublisher
publishEvent, publishEventMethods inherited from interface org.springframework.beans.factory.BeanFactory
containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatchMethods inherited from interface org.springframework.context.ConfigurableApplicationContext
addApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getApplicationStartup, getBeanFactory, getEnvironment, isActive, refresh, registerShutdownHook, removeApplicationListener, setApplicationStartup, setClassLoader, setEnvironment, setId, setParentMethods inherited from interface org.springframework.web.context.ConfigurableWebApplicationContext
setConfigLocation, setConfigLocationsMethods inherited from interface org.springframework.beans.factory.HierarchicalBeanFactory
containsLocalBean, getParentBeanFactoryMethods inherited from interface org.springframework.beans.factory.ListableBeanFactory
containsBeanDefinition, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotationMethods inherited from interface org.springframework.context.MessageSource
getMessage, getMessage, getMessageMethods inherited from interface org.springframework.core.io.ResourceLoader
getClassLoader, getResourceMethods inherited from interface org.springframework.core.io.support.ResourcePatternResolver
getResources
-
Field Details
-
DEFAULT_CONFIG_LOCATION
Default config location for the root context.- See Also:
-
DEFAULT_CONFIG_LOCATION_PREFIX
Default prefix for building a config location for a namespace.- See Also:
-
DEFAULT_CONFIG_LOCATION_SUFFIX
Default suffix for building a config location for a namespace.- See Also:
-
-
Constructor Details
-
GroovyWebApplicationContext
public GroovyWebApplicationContext()
-
-
Method Details
-
loadBeanDefinitions
protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) throws BeansException, IOException Loads the bean definitions via an GroovyBeanDefinitionReader.- Specified by:
loadBeanDefinitionsin classAbstractRefreshableApplicationContext- Parameters:
beanFactory- the bean factory to load bean definitions into- Throws:
BeansException- if parsing of the bean definitions failedIOException- if loading of bean definition files failed- See Also:
-
initBeanDefinitionReader
Initialize the bean definition reader used for loading the bean definitions of this context. Default implementation is empty.Can be overridden in subclasses.
- Parameters:
beanDefinitionReader- the bean definition reader used by this context
-
loadBeanDefinitions
Load the bean definitions with the given GroovyBeanDefinitionReader.The lifecycle of the bean factory is handled by the refreshBeanFactory method; therefore this method is just supposed to load and/or register bean definitions.
Delegates to a ResourcePatternResolver for resolving location patterns into Resource instances.
- Throws:
IOException- if the required Groovy script or XML file isn't found- See Also:
-
getDefaultConfigLocations
The default location for the root context is "/WEB-INF/applicationContext.groovy", and "/WEB-INF/test-servlet.groovy" for a context with the namespace "test-servlet" (like for a DispatcherServlet instance with the servlet-name "test").- Overrides:
getDefaultConfigLocationsin classAbstractRefreshableConfigApplicationContext- Returns:
- an array of default config locations, if any
- See Also:
-
setMetaClass
public void setMetaClass(groovy.lang.MetaClass metaClass) - Specified by:
setMetaClassin interfacegroovy.lang.GroovyObject
-
getMetaClass
public groovy.lang.MetaClass getMetaClass()- Specified by:
getMetaClassin interfacegroovy.lang.GroovyObject
-
invokeMethod
- Specified by:
invokeMethodin interfacegroovy.lang.GroovyObject
-
setProperty
- Specified by:
setPropertyin interfacegroovy.lang.GroovyObject
-
getProperty
- Specified by:
getPropertyin interfacegroovy.lang.GroovyObject
-