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 のスコープ内のプロパティの取得をオーバーライドします。 |
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