クラス GroovyBeanDefinitionReader
java.lang.ObjectSE
org.springframework.beans.factory.support.AbstractBeanDefinitionReader
org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader
- 実装されているすべてのインターフェース:
groovy.lang.GroovyObject、BeanDefinitionReader、EnvironmentCapable
public class GroovyBeanDefinitionReader
extends AbstractBeanDefinitionReader
implements groovy.lang.GroovyObject
Spring Bean 定義用の Groovy ベースのリーダー: Groovy ビルダーに似ていますが、Spring 構成用の DSL です。
この 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
}
}
}- 導入:
- 4.0
- 作成者:
- Jeff Brown, Graeme Rocher, Juergen Hoeller, Sam Brannen
- 関連事項:
フィールドのサマリー
クラス org.springframework.beans.factory.support.AbstractBeanDefinitionReader から継承されたフィールド
loggerコンストラクターの概要
コンストラクターコンストラクター説明指定されたBeanDefinitionRegistryの新しいGroovyBeanDefinitionReaderを作成します。GroovyBeanDefinitionReader(XmlBeanDefinitionReader xmlBeanDefinitionReader) 指定されたXmlBeanDefinitionReaderに基づいて新しいGroovyBeanDefinitionReaderを作成し、Bean 定義をBeanDefinitionRegistryにロードし、Groovy DSL ロードをそれに委譲します。メソッドのサマリー
修飾子と型メソッド説明protected voidapplyPropertyToBeanDefinition(StringSE name, ObjectSE value) 内部 Bean 定義を定義します。内部 Bean 定義を定義します。beans(groovy.lang.Closure<?> closure) 指定されたブロックまたはクロージャの Bean のセットを定義します。@Nullable groovy.lang.BindingGroovy 変数の指定されたバインディングがあれば、それを返します。groovy.lang.MetaClassgetProperty(StringSE name) このメソッドは、GroovyBeanDefinitionReaderのスコープ内のプロパティの取得をオーバーライドします。voidimportBeans(StringSE resourcePattern) XML または Groovy ソースから Spring Bean 定義を現在の Bean ビルダーインスタンスにインポートします。protected GroovyBeanDefinitionReaderinvokeBeanDefiningClosure(groovy.lang.Closure<?> callable) メソッド引数がクロージャのみの場合、Bean 定義のセットです。invokeMethod(StringSE name, ObjectSE arg) このメソッドは、メソッドの呼び出しをオーバーライドして、クラス引数を取る各メソッド名の Bean を作成します。intloadBeanDefinitions(Resource resource) 指定された Groovy スクリプトまたは XML ファイルから Bean 定義をロードします。intloadBeanDefinitions(EncodedResource encodedResource) 指定された Groovy スクリプトまたは XML ファイルから Bean 定義をロードします。resolveConstructorArguments(ObjectSE[] args, int start, int end) voidsetBinding(groovy.lang.Binding binding) バインディングを設定します。voidsetMetaClass(groovy.lang.MetaClass metaClass) voidsetProperty(StringSE name, ObjectSE value) このメソッドは、GroovyBeanDefinitionReaderのスコープ内のプロパティ設定をオーバーライドして、現在の Bean 定義にプロパティを設定します。void使用する Spring XML 名前空間定義を定義します。クラス org.springframework.beans.factory.support.AbstractBeanDefinitionReader から継承されたメソッド
getBeanClassLoader, getBeanNameGenerator, getEnvironment, getRegistry, getResourceLoader, loadBeanDefinitions, loadBeanDefinitions, loadBeanDefinitions, loadBeanDefinitions, setBeanClassLoader, setBeanNameGenerator, setEnvironment, setResourceLoader
コンストラクターの詳細
GroovyBeanDefinitionReader
指定されたBeanDefinitionRegistryの新しいGroovyBeanDefinitionReaderを作成します。- パラメーター:
registry- Bean 定義をロードするBeanDefinitionRegistry
GroovyBeanDefinitionReader
指定されたXmlBeanDefinitionReaderに基づいて新しいGroovyBeanDefinitionReaderを作成し、Bean 定義をBeanDefinitionRegistryにロードし、Groovy DSL ロードをそれに委譲します。提供される
XmlBeanDefinitionReaderは、通常、XML 検証を無効にして事前構成する必要があります。- パラメーター:
xmlBeanDefinitionReader-XmlBeanDefinitionReaderからレジストリを派生させ、Groovy DSL の読み込みを委譲する
メソッドの詳細
setMetaClass
public void setMetaClass(groovy.lang.MetaClass metaClass) - 次で指定:
- インターフェース
groovy.lang.GroovyObjectのsetMetaClass
getMetaClass
public groovy.lang.MetaClass getMetaClass()- 次で指定:
- インターフェース
groovy.lang.GroovyObjectのgetMetaClass
setBinding
public void setBinding(groovy.lang.Binding binding) バインディング、つまりGroovyBeanDefinitionReaderクロージャーのスコープで使用可能な Groovy 変数を設定します。getBinding
Groovy 変数の指定されたバインディングがあれば、それを返します。loadBeanDefinitions
指定された Groovy スクリプトまたは XML ファイルから Bean 定義をロードします。".xml"ファイルは XML コンテンツとして解析されることに注意してください。他のすべての種類のリソースは、Groovy スクリプトとして解析されます。- 次で指定:
- インターフェース
BeanDefinitionReaderのloadBeanDefinitions - パラメーター:
resource- Groovy スクリプトまたは XML ファイルのリソース記述子- 戻り値:
- 見つかった Bean 定義の数
- 例外:
BeanDefinitionStoreException- ロードまたは解析エラーの場合
loadBeanDefinitions
指定された Groovy スクリプトまたは XML ファイルから Bean 定義をロードします。".xml"ファイルは XML コンテンツとして解析されることに注意してください。他のすべての種類のリソースは、Groovy スクリプトとして解析されます。- パラメーター:
encodedResource- Groovy スクリプトまたは XML ファイルのリソース記述子。ファイルの解析に使用するエンコーディングを指定できます- 戻り値:
- 見つかった Bean 定義の数
- 例外:
BeanDefinitionStoreException- ロードまたは解析エラーの場合
beans
指定されたブロックまたはクロージャの Bean のセットを定義します。- パラメーター:
closure- ブロックまたは閉鎖- 戻り値:
- この
GroovyBeanDefinitionReaderインスタンス
bean
内部 Bean 定義を定義します。- パラメーター:
type- Bean 型- 戻り値:
- Bean 定義
bean
内部 Bean 定義を定義します。- パラメーター:
type- Bean 型args- コンストラクターの引数とクロージャー構成子- 戻り値:
- Bean 定義
xmlns
importBeans
XML または Groovy ソースから Spring Bean 定義を現在の Bean ビルダーインスタンスにインポートします。- パラメーター:
resourcePattern- リソースパターン- 例外:
IOExceptionSE
invokeMethod
invokeBeanDefiningClosure
メソッド引数がクロージャのみの場合、Bean 定義のセットです。- パラメーター:
callable- クロージャー引数- 戻り値:
- この
GroovyBeanDefinitionReaderインスタンス
resolveConstructorArguments
setProperty
applyPropertyToBeanDefinition
getProperty
このメソッドは、GroovyBeanDefinitionReaderのスコープ内のプロパティの取得をオーバーライドします。プロパティの取得は次のいずれかになります。- 変数が存在する場合、Bean ビルダーのバインディングから変数を取得します。
- 特定の Bean が存在する場合は、その RuntimeBeanReference を取得します。
- それ以外の場合は、
GroovyBeanDefinitionReader自体からプロパティを解決する MetaClass.getProperty にデリゲートするだけです
- 次で指定:
- インターフェース
groovy.lang.GroovyObjectのgetProperty