Class GenericGroovyApplicationContext
- All Implemented Interfaces:
- groovy.lang.GroovyObject,- Closeable,- AutoCloseable,- BeanFactory,- HierarchicalBeanFactory,- ListableBeanFactory,- BeanDefinitionRegistry,- ApplicationContext,- ApplicationEventPublisher,- ConfigurableApplicationContext,- Lifecycle,- MessageSource,- AliasRegistry,- EnvironmentCapable,- ResourceLoader,- ResourcePatternResolver
ApplicationContext implementation that extends
 GenericApplicationContext and implements GroovyObject such that beans
 can be retrieved with the dot de-reference syntax instead of using AbstractApplicationContext.getBean(java.lang.String).
 Consider this as the equivalent of GenericXmlApplicationContext for
 Groovy bean definitions, or even an upgrade thereof since it seamlessly understands
 XML bean definition files as well. The main difference is that, within a Groovy
 script, the context can be used with an inline bean definition closure as follows:
 
 import org.hibernate.SessionFactory
 import org.apache.commons.dbcp.BasicDataSource
 def context = new GenericGroovyApplicationContext()
 context.reader.beans {
     dataSource(BasicDataSource) {                  // <--- invokeMethod
         driverClassName = "org.hsqldb.jdbcDriver"
         url = "jdbc:hsqldb:mem:grailsDB"
         username = "sa"                            // <-- setProperty
         password = ""
         settings = [mynew:"setting"]
     }
     sessionFactory(SessionFactory) {
         dataSource = dataSource                    // <-- getProperty for retrieving references
     }
     myService(MyService) {
         nestedBean = { AnotherBean bean ->         // <-- setProperty with closure for nested bean
             dataSource = dataSource
         }
     }
 }
 context.refresh()
 
 Alternatively, load a Groovy bean definition script like the following from an external resource (for example, an "applicationContext.groovy" file):
 import org.hibernate.SessionFactory
 import org.apache.commons.dbcp.BasicDataSource
 beans {
     dataSource(BasicDataSource) {
         driverClassName = "org.hsqldb.jdbcDriver"
         url = "jdbc:hsqldb:mem:grailsDB"
         username = "sa"
         password = ""
         settings = [mynew:"setting"]
     }
     sessionFactory(SessionFactory) {
         dataSource = dataSource
     }
     myService(MyService) {
         nestedBean = { AnotherBean bean ->
             dataSource = dataSource
         }
     }
 }
 
 With the following Java code creating the GenericGroovyApplicationContext
 (potentially using Ant-style '*'/'**' location patterns):
 
 GenericGroovyApplicationContext context = new GenericGroovyApplicationContext();
 context.load("org/myapp/applicationContext.groovy");
 context.refresh();
 
 Or even more concise, provided that no extra configuration is needed:
 ApplicationContext context = new GenericGroovyApplicationContext("org/myapp/applicationContext.groovy");
 
 This application context also understands XML bean definition files, allowing for seamless mixing and matching with Groovy bean definition files. ".xml" files will be parsed as XML content; all other kinds of resources will be parsed as Groovy scripts.
- Since:
- 4.0
- Author:
- Juergen Hoeller, Jeff Brown
- See Also:
- 
Nested Class SummaryNested classes/interfaces inherited from class org.springframework.core.io.DefaultResourceLoaderDefaultResourceLoader.ClassPathContextResource
- 
Field SummaryFields inherited from class org.springframework.context.support.AbstractApplicationContextAPPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAMEFields inherited from interface org.springframework.beans.factory.BeanFactoryFACTORY_BEAN_PREFIXFields inherited from interface org.springframework.context.ConfigurableApplicationContextAPPLICATION_STARTUP_BEAN_NAME, BOOTSTRAP_EXECUTOR_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.core.io.ResourceLoaderCLASSPATH_URL_PREFIXFields inherited from interface org.springframework.core.io.support.ResourcePatternResolverCLASSPATH_ALL_URL_PREFIX
- 
Constructor SummaryConstructorsConstructorDescriptionGenericGroovyApplicationContext(Class<?> relativeClass, String... resourceNames) Create a new GenericGroovyApplicationContext, loading bean definitions from the given resource locations and automatically refreshing the context.GenericGroovyApplicationContext(String... resourceLocations) Create a new GenericGroovyApplicationContext, loading bean definitions from the given resource locations and automatically refreshing the context.GenericGroovyApplicationContext(Resource... resources) Create a new GenericGroovyApplicationContext, loading bean definitions from the given resources and automatically refreshing the context.
- 
Method SummaryModifier and TypeMethodDescriptiongroovy.lang.MetaClassgetProperty(String property) Exposes the underlyingGroovyBeanDefinitionReaderfor convenient access to theloadBeanDefinitionmethods on it as well as the ability to specify an inline Groovy bean definition closure.invokeMethod(String name, Object args) voidLoad bean definitions from the given Groovy scripts or XML files.voidLoad bean definitions from the given Groovy scripts or XML files.voidLoad bean definitions from the given Groovy scripts or XML files.voidsetEnvironment(ConfigurableEnvironment environment) Delegates the given environment to underlyingGroovyBeanDefinitionReader.voidsetMetaClass(groovy.lang.MetaClass metaClass) voidsetProperty(String property, Object newValue) Methods inherited from class org.springframework.context.support.GenericApplicationContextcancelRefresh, closeBeanFactory, getAutowireCapableBeanFactory, getBeanDefinition, getBeanFactory, getClassLoader, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanDefinitionOverridable, isBeanNameInUse, refreshBeanFactory, refreshForAotProcessing, registerAlias, registerBean, registerBean, registerBean, registerBean, registerBean, registerBean, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setApplicationStartup, setClassLoader, setParent, setResourceLoaderMethods inherited from class org.springframework.context.support.AbstractApplicationContextaddApplicationListener, addBeanFactoryPostProcessor, assertBeanFactoryActive, clearResourceCaches, close, containsBean, containsBeanDefinition, containsLocalBean, createEnvironment, destroyBeans, doClose, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, getApplicationStartup, 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, getResourcePatternResolver, getStartupDate, getType, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, initPropertySources, invokeBeanFactoryPostProcessors, isActive, isClosed, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, postProcessBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, removeApplicationListener, resetCommonCaches, setDisplayName, setId, start, stop, toStringMethods inherited from class org.springframework.core.io.DefaultResourceLoaderaddProtocolResolver, getProtocolResolvers, getResourceByPath, getResourceCacheMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.core.AliasRegistrygetAliasesMethods inherited from interface org.springframework.beans.factory.support.BeanDefinitionRegistrycontainsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNamesMethods inherited from interface org.springframework.context.ConfigurableApplicationContextaddProtocolResolver
- 
Constructor Details- 
GenericGroovyApplicationContextpublic GenericGroovyApplicationContext()
- 
GenericGroovyApplicationContextCreate a new GenericGroovyApplicationContext, loading bean definitions from the given resources and automatically refreshing the context.- Parameters:
- resources- the resources to load from
 
- 
GenericGroovyApplicationContextCreate a new GenericGroovyApplicationContext, loading bean definitions from the given resource locations and automatically refreshing the context.- Parameters:
- resourceLocations- the resources to load from
 
- 
GenericGroovyApplicationContextCreate a new GenericGroovyApplicationContext, loading bean definitions from the given resource locations and automatically refreshing the context.- Parameters:
- relativeClass- class whose package will be used as a prefix when loading each specified resource name
- resourceNames- relatively-qualified names of resources to load
 
 
- 
- 
Method Details- 
getReaderExposes the underlyingGroovyBeanDefinitionReaderfor convenient access to theloadBeanDefinitionmethods on it as well as the ability to specify an inline Groovy bean definition closure.
- 
setEnvironmentDelegates the given environment to underlyingGroovyBeanDefinitionReader. Should be called before any call to#load.- Specified by:
- setEnvironmentin interface- ConfigurableApplicationContext
- Overrides:
- setEnvironmentin class- AbstractApplicationContext
- Parameters:
- environment- the new environment
- See Also:
 
- 
loadLoad bean definitions from the given Groovy scripts or XML files.Note that ".xml" files will be parsed as XML content; all other kinds of resources will be parsed as Groovy scripts. - Parameters:
- resources- one or more resources to load from
 
- 
loadLoad bean definitions from the given Groovy scripts or XML files.Note that ".xml" files will be parsed as XML content; all other kinds of resources will be parsed as Groovy scripts. - Parameters:
- resourceLocations- one or more resource locations to load from
 
- 
loadLoad bean definitions from the given Groovy scripts or XML files.Note that ".xml" files will be parsed as XML content; all other kinds of resources will be parsed as Groovy scripts. - Parameters:
- relativeClass- class whose package will be used as a prefix when loading each specified resource name
- resourceNames- relatively-qualified names of resources to load
 
- 
setMetaClasspublic void setMetaClass(groovy.lang.MetaClass metaClass) - Specified by:
- setMetaClassin interface- groovy.lang.GroovyObject
 
- 
getMetaClasspublic groovy.lang.MetaClass getMetaClass()- Specified by:
- getMetaClassin interface- groovy.lang.GroovyObject
 
- 
invokeMethod- Specified by:
- invokeMethodin interface- groovy.lang.GroovyObject
 
- 
setProperty- Specified by:
- setPropertyin interface- groovy.lang.GroovyObject
 
- 
getProperty- Specified by:
- getPropertyin interface- groovy.lang.GroovyObject
 
 
-