类 GenericGroovyApplicationContext
- java.lang.Object
- org.springframework.core.io.DefaultResourceLoader
- org.springframework.context.support.AbstractApplicationContext
- org.springframework.context.support.GenericApplicationContext
- org.springframework.context.support.GenericGroovyApplicationContext
- 所有已实现的接口:
groovy.lang.GroovyObject
,Closeable
,AutoCloseable
,BeanFactory
,DisposableBean
,HierarchicalBeanFactory
,ListableBeanFactory
,BeanDefinitionRegistry
,ApplicationContext
,ApplicationEventPublisher
,ConfigurableApplicationContext
,Lifecycle
,MessageSource
,AliasRegistry
,EnvironmentCapable
,ResourceLoader
,ResourcePatternResolver
public class GenericGroovyApplicationContext extends GenericApplicationContext implements groovy.lang.GroovyObject
AnApplicationContext
implementation that extendsGenericApplicationContext
and implementsGroovyObject
such that beans can be retrieved with the dot de-reference syntax instead of usingAbstractApplicationContext.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 (e.g. 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.
- 从以下版本开始:
- 4.0
- 作者:
- Juergen Hoeller, Jeff Brown
- 另请参阅:
GroovyBeanDefinitionReader
嵌套类概要
从类继承的嵌套类/接口 org.springframework.core.io.DefaultResourceLoader
DefaultResourceLoader.ClassPathContextResource
字段概要
从类继承的字段 org.springframework.context.support.AbstractApplicationContext
APPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAME
从接口继承的字段 org.springframework.beans.factory.BeanFactory
FACTORY_BEAN_PREFIX
从接口继承的字段 org.springframework.context.ConfigurableApplicationContext
CONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_BEAN_NAME
从接口继承的字段 org.springframework.core.io.ResourceLoader
CLASSPATH_URL_PREFIX
从接口继承的字段 org.springframework.core.io.support.ResourcePatternResolver
CLASSPATH_ALL_URL_PREFIX
构造器概要
构造器 构造器 说明 GenericGroovyApplicationContext()
GenericGroovyApplicationContext(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.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 groovy.lang.MetaClass
getMetaClass()
Object
getProperty(String property)
GroovyBeanDefinitionReader
getReader()
Exposes the underlyingGroovyBeanDefinitionReader
for convenient access to theloadBeanDefinition
methods on it as well as the ability to specify an inline Groovy bean definition closure.Object
invokeMethod(String name, Object args)
void
load(Class<?> relativeClass, String... resourceNames)
Load bean definitions from the given Groovy scripts or XML files.void
load(String... resourceLocations)
Load bean definitions from the given Groovy scripts or XML files.void
load(Resource... resources)
Load bean definitions from the given Groovy scripts or XML files.void
setEnvironmentR