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
, GenericGroovyApplicationContext
logger
コンストラクターと説明 |
---|
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 のスコープ内のプロパティの取得をオーバーライドします。 |
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, setResourceLoader
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public 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
- リソースパターン IOExceptionSE
public 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