public class GroovyBeanDefinitionReader extends AbstractBeanDefinitionReader implements groovy.lang.GroovyObject
この Bean 定義リーダーは、XML Bean 定義ファイルも理解できるため、Groovy Bean 定義ファイルとのシームレスな混合とマッチングが可能になります。
通常は DefaultListableBeanFactory または GenericApplicationContext に適用されますが、任意の BeanDefinitionRegistry 実装に対して使用できます。
import org.hibernate.SessionFactory
import org.apache.commons.dbcp.BasicDataSource
def reader = new GroovyBeanDefinitionReader(myApplicationContext)
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
}
}
} 次のようなスクリプトを使用して、AbstractBeanDefinitionReader.loadBeanDefinitions(Resource...) または AbstractBeanDefinitionReader.loadBeanDefinitions(String...) メソッドを使用して、Groovy スクリプトで定義された Bean を含むリソースをロードすることもできます。
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
}
}
}BeanDefinitionRegistry, DefaultListableBeanFactory, GenericApplicationContext, GenericGroovyApplicationContextlogger| コンストラクターと説明 |
|---|
GroovyBeanDefinitionReader(BeanDefinitionRegistry registry) 指定された BeanDefinitionRegistry の新しい GroovyBeanDefinitionReader を作成します。 |
GroovyBeanDefinitionReader(XmlBeanDefinitionReader xmlBeanDefinitionReader) 指定された XmlBeanDefinitionReader に基づいて新しい GroovyBeanDefinitionReader を作成し、Bean 定義を BeanDefinitionRegistry にロードし、Groovy DSL ロードをそれに委譲します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected void | applyPropertyToBeanDefinition(StringSE name, ObjectSE value) |
GenericBeanDefinition | bean(ClassSE<?> type) 内部 Bean 定義を定義します。 |
AbstractBeanDefinition | bean(ClassSE<?> type, ObjectSE... args) 内部 Bean 定義を定義します。 |
GroovyBeanDefinitionReader | beans(groovy.lang.Closure closure) 指定されたブロックまたはクロージャの Bean のセットを定義します。 |
groovy.lang.Binding | getBinding()Groovy 変数の指定されたバインディングがあれば、それを返します。 |
groovy.lang.MetaClass | getMetaClass() |
ObjectSE | getProperty(StringSE name) このメソッドは、 GroovyBeanDefinitionReader のスコープ内のプロパティ取得を次のいずれかにオーバーライドします。存在する場合は Bean ビルダーのバインディングから変数を取得します。存在する場合は特定の Bean の RuntimeBeanReference を取得します。それ以外の場合は、GroovyBeanDefinitionReader 自体からプロパティを解決する MetaClass.getProperty に委譲します |
void | importBeans(StringSE resourcePattern)XML または Groovy ソースから Spring Bean 定義を現在の Bean ビルダーインスタンスにインポートします。 |
protected GroovyBeanDefinitionReader | invokeBeanDefiningClosure(groovy.lang.Closure callable) メソッド引数がクロージャのみの場合、Bean 定義のセットです。 |
ObjectSE | invokeMethod(StringSE name, ObjectSE arg) このメソッドは、メソッドの呼び出しをオーバーライドして、クラス引数を取る各メソッド名の Bean を作成します。 |
int | loadBeanDefinitions(EncodedResource encodedResource) 指定された Groovy スクリプトまたは XML ファイルから Bean 定義をロードします。 |
int | loadBeanDefinitions(Resource resource) 指定された Groovy スクリプトまたは XML ファイルから Bean 定義をロードします。 |
protected ListSE<ObjectSE> | resolveConstructorArguments(ObjectSE[] args, int start, int end) |
void | setBinding(groovy.lang.Binding binding) バインディングを設定します。 |
void | setMetaClass(groovy.lang.MetaClass metaClass) |
void | setProperty(StringSE name, ObjectSE value) このメソッドは、 GroovyBeanDefinitionReader のスコープ内のプロパティ設定をオーバーライドして、現在の Bean 定義にプロパティを設定します。 |
void | xmlns(MapSE<StringSE, StringSE> definition) 使用する Spring XML 名前空間定義を定義します。 |
getBeanClassLoader, getBeanFactory, getBeanNameGenerator, getEnvironment, getRegistry, getResourceLoader, loadBeanDefinitions, loadBeanDefinitions, loadBeanDefinitions, loadBeanDefinitions, setBeanClassLoader, setBeanNameGenerator, setEnvironment, setResourceLoadercloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic GroovyBeanDefinitionReader(BeanDefinitionRegistry registry)
BeanDefinitionRegistry の新しい GroovyBeanDefinitionReader を作成します。registry - Bean 定義をロードする BeanDefinitionRegistry public GroovyBeanDefinitionReader(XmlBeanDefinitionReader xmlBeanDefinitionReader)
XmlBeanDefinitionReader に基づいて新しい GroovyBeanDefinitionReader を作成し、Bean 定義を BeanDefinitionRegistry にロードし、Groovy DSL ロードをそれに委譲します。 提供される XmlBeanDefinitionReader は、通常、XML 検証を無効にして事前構成する必要があります。
xmlBeanDefinitionReader - XmlBeanDefinitionReader からレジストリを派生させ、Groovy DSL の読み込みを委譲する public void setMetaClass(groovy.lang.MetaClass metaClass)
groovy.lang.GroovyObject の setMetaClass public groovy.lang.MetaClass getMetaClass()
groovy.lang.GroovyObject の getMetaClass public void setBinding(groovy.lang.Binding binding)
GroovyBeanDefinitionReader クロージャーのスコープで使用可能な Groovy 変数を設定します。public groovy.lang.Binding getBinding()
public int loadBeanDefinitions(Resource resource) throws BeanDefinitionStoreException
".xml" ファイルは XML コンテンツとして解析されることに注意してください。他のすべての種類のリソースは、Groovy スクリプトとして解析されます。
BeanDefinitionReader の loadBeanDefinitions resource - Groovy スクリプトまたは XML ファイルのリソース記述子 BeanDefinitionStoreException - ロードまたは解析エラーの場合 public int loadBeanDefinitions(EncodedResource encodedResource) throws BeanDefinitionStoreException
".xml" ファイルは XML コンテンツとして解析されることに注意してください。他のすべての種類のリソースは、Groovy スクリプトとして解析されます。
encodedResource - Groovy スクリプトまたは XML ファイルのリソース記述子。ファイルの解析に使用するエンコーディングを指定できます BeanDefinitionStoreException - ロードまたは解析エラーの場合 public GroovyBeanDefinitionReader beans(groovy.lang.Closure closure)
closure - ブロックまたは閉鎖 GroovyBeanDefinitionReader インスタンス public GenericBeanDefinition bean(ClassSE<?> type)
type - Bean 型 public AbstractBeanDefinition bean(ClassSE<?> type, ObjectSE... args)
type - Bean 型 args - コンストラクターの引数とクロージャー構成子 public void xmlns(MapSE<StringSE,StringSE> definition)
definition - 名前空間の定義 public void importBeans(StringSE resourcePattern) throws IOExceptionSE
resourcePattern - リソースパターン IOExceptionSEpublic ObjectSE invokeMethod(StringSE name, ObjectSE arg)
groovy.lang.GroovyObject の invokeMethod protected GroovyBeanDefinitionReader invokeBeanDefiningClosure(groovy.lang.Closure callable)
callable - クロージャー引数 GroovyBeanDefinitionReader インスタンス protected ListSE<ObjectSE> resolveConstructorArguments(ObjectSE[] args, int start, int end)
public void setProperty(StringSE name, ObjectSE value)
GroovyBeanDefinitionReader のスコープ内のプロパティ設定をオーバーライドして、現在の Bean 定義にプロパティを設定します。groovy.lang.GroovyObject の setProperty protected void applyPropertyToBeanDefinition(StringSE name, ObjectSE value)
public ObjectSE getProperty(StringSE name)
GroovyBeanDefinitionReader のスコープ内のプロパティ取得を次のいずれかにオーバーライドします。GroovyBeanDefinitionReader 自体からプロパティを解決する MetaClass.getProperty にデリゲートするだけです groovy.lang.GroovyObject の getProperty