org.springframework.context.ApplicationContext implementation that extends
GenericApplicationContext and implements GroovyObject such that beans
can be retrieved with the dot de-reference syntax instead of using getBean.
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.
org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader
| Modifier and Type | Field and Description |
|---|---|
| private final BeanWrapper | |
| private MetaClass | |
| private final GroovyBeanDefinitionReader |
| Access | Constructor and Description |
|---|---|
| public | GenericGroovyApplicationContext()
Create a new GenericGroovyApplicationContext that needs to be
|
| public | GenericGroovyApplicationContext(Resource...
the resources to load from resources)Create a new GenericGroovyApplicationContext, loading bean definitions from the given resources and automatically refreshing the context. |
| public | GenericGroovyApplicationContext(String...
the resources to load from resourceLocations)Create a new GenericGroovyApplicationContext, loading bean definitions from the given resource locations and automatically refreshing the context. |
| public | GenericGroovyApplicationContext(Class<?>
class whose package will be used as a prefix when
loading each specified resource name relativeClass, String... relatively-qualified names of resources to load resourceNames)Create a new GenericGroovyApplicationContext, loading bean definitions from the given resource locations and automatically refreshing the context. |
| Modifier and Type | Method and Description |
|---|---|
| public MetaClass | getMetaClass()
Implements groovy. |
| public Object | getProperty(String
the name of the property of interest property)Overrides default groovy. |
| public final GroovyBeanDefinitionReader | getReader()
Exposes the underlying |
| public Object | invokeMethod(String
the name of the method to call name, Object the arguments to use for the method call args)Overrides default groovy. |
| public void | |
| public void | |
| public void | |
| public void | setEnvironment(ConfigurableEnvironment
the new environment environment)Overrides org. Implements org. GroovyBeanDefinitionReader.
|
| public void | setMetaClass(MetaClass
the new metaclass metaClass)Implements groovy. |
| public void | setProperty(String
the name of the property of interest property, Object the new value for the property newValue)Overrides default groovy. |
| contextWrapper | back to summary |
|---|---|
| private final BeanWrapper contextWrapper | |
| metaClass | back to summary |
|---|---|
| private MetaClass metaClass | |
| reader | back to summary |
|---|---|
| private final GroovyBeanDefinitionReader reader | |
| GenericGroovyApplicationContext | back to summary |
|---|---|
| public GenericGroovyApplicationContext() Create a new GenericGroovyApplicationContext that needs to be
| |
| GenericGroovyApplicationContext | back to summary |
|---|---|
| public GenericGroovyApplicationContext(Resource... resources) Create a new GenericGroovyApplicationContext, loading bean definitions from the given resources and automatically refreshing the context.
| |
| GenericGroovyApplicationContext | back to summary |
|---|---|
| public GenericGroovyApplicationContext(String... resourceLocations) Create a new GenericGroovyApplicationContext, loading bean definitions from the given resource locations and automatically refreshing the context.
| |
| GenericGroovyApplicationContext | back to summary |
|---|---|
| public GenericGroovyApplicationContext(Class<?> relativeClass, String... resourceNames) Create a new GenericGroovyApplicationContext, loading bean definitions from the given resource locations and automatically refreshing the context. | |
| getMetaClass | back to summary |
|---|---|
| public MetaClass getMetaClass() Implements groovy. Doc from groovy. Returns the metaclass for a given class. | |
| getProperty | back to summary |
|---|---|
| public Object getProperty(String property) Overrides default groovy. Doc from groovy. Retrieves a property value. | |
| getReader | back to summary |
|---|---|
| public final GroovyBeanDefinitionReader getReader() Exposes the underlying | |
| invokeMethod | back to summary |
|---|---|
| public Object invokeMethod(String name, Object args) Overrides default groovy. Doc from groovy. Invokes the given method. | |
| load | back to summary |
|---|---|
| public void load(Resource... resources) Load 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.
| |
| load | back to summary |
|---|---|
| public void load(String... resourceLocations) Load 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.
| |
| load | back to summary |
|---|---|
| public void load(Class<?> relativeClass, String... resourceNames) Load 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. | |
| setEnvironment | back to summary |
|---|---|
| public void setEnvironment(ConfigurableEnvironment environment) Overrides org. Implements org. Delegates the given environment to underlying
| |
| setMetaClass | back to summary |
|---|---|
| public void setMetaClass(MetaClass metaClass) Implements groovy. Doc from groovy. Allows the MetaClass to be replaced with a derived implementation. | |
| setProperty | back to summary |
|---|---|
| public void setProperty(String property, Object newValue) Overrides default groovy. Doc from groovy. Sets the given property to the new value. | |