クラス GenericGroovyApplicationContext

実装されたすべてのインターフェース:
groovy.lang.GroovyObjectCloseableSEAutoCloseableSEBeanFactoryHierarchicalBeanFactoryListableBeanFactoryBeanDefinitionRegistryApplicationContextApplicationEventPublisherConfigurableApplicationContextLifecycleMessageSourceAliasRegistryEnvironmentCapableResourceLoaderResourcePatternResolver

public class GenericGroovyApplicationContext extends GenericApplicationContext implements groovy.lang.GroovyObject
GenericApplicationContext を継承し、GroovyObject を実装する ApplicationContext 実装。AbstractApplicationContext.getBean(java.lang.String) を使用する代わりに、ドット参照解除構文で Bean を取得できます。

これは、Groovy Bean 定義の GenericXmlApplicationContext に相当するものと見なします。また、XML Bean 定義ファイルもシームレスに理解できるため、そのアップグレードと見なすこともできます。主な違いは、Groovy スクリプト内では、次のようにインライン Bean 定義クロージャーでコンテキストを使用できることです。

 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()
 

あるいは、外部リソース ( "applicationContext.groovy" ファイルなど) から次のような 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
         }
     }
 }
 

次の Java コードで GenericGroovyApplicationContext を作成します(Ant スタイルの '*' /'**' ロケーションパターンを使用する可能性があります)。

 GenericGroovyApplicationContext context = new GenericGroovyApplicationContext();
 context.load("org/myapp/applicationContext.groovy");
 context.refresh();
 

または、追加の構成が必要ない場合は、さらに簡潔にします。

 ApplicationContext context = new GenericGroovyApplicationContext("org/myapp/applicationContext.groovy");
 

このアプリケーションコンテキストは、XML Bean 定義ファイルも理解し、Groovy Bean 定義ファイルとのシームレスなミキシングとマッチングを可能にします。".xml" ファイルは XML コンテンツとして解析されます。他のすべての種類のリソースは、Groovy スクリプトとして解析されます。

導入:
4.0
作成者:
Juergen Hoeller, Jeff Brown
関連事項:
  • コンストラクターの詳細

    • GenericGroovyApplicationContext

      public GenericGroovyApplicationContext()
      loaded である必要がある新しい GenericGroovyApplicationContext を作成してから、手動で refreshed を作成します。
    • GenericGroovyApplicationContext

      public GenericGroovyApplicationContext(Resource... resources)
      新しい GenericGroovyApplicationContext を作成し、指定されたリソースから Bean 定義をロードして、コンテキストを自動的にリフレッシュします。
      パラメーター:
      resources - ロードするリソース
    • GenericGroovyApplicationContext

      public GenericGroovyApplicationContext(StringSE... resourceLocations)
      新しい GenericGroovyApplicationContext を作成し、指定されたリソースの場所から Bean 定義をロードして、コンテキストを自動的にリフレッシュします。
      パラメーター:
      resourceLocations - ロードするリソース
    • GenericGroovyApplicationContext

      public GenericGroovyApplicationContext(ClassSE<?> relativeClass, StringSE... resourceNames)
      新しい GenericGroovyApplicationContext を作成し、指定されたリソースの場所から Bean 定義をロードして、コンテキストを自動的にリフレッシュします。
      パラメーター:
      relativeClass - 指定された各リソース名をロードするときにパッケージがプレフィックスとして使用されるクラス
      resourceNames - ロードするリソースの比較的修飾された名前
  • メソッドの詳細

    • getReader

      public final GroovyBeanDefinitionReader getReader()
      基になる GroovyBeanDefinitionReader を公開して、その loadBeanDefinition メソッドへの便利なアクセスと、インライン Groovy Bean 定義クロージャを指定する機能を提供します。
      関連事項:
    • setEnvironment

      public void setEnvironment(ConfigurableEnvironment environment)
      指定された環境を基礎となる GroovyBeanDefinitionReader に委譲します。#load を呼び出す前に呼び出す必要があります。
      次で指定:
      インターフェース ConfigurableApplicationContextsetEnvironment 
      オーバーライド:
      クラス AbstractApplicationContextsetEnvironment 
      パラメーター:
      environment - 新しい環境
      関連事項:
    • load

      public void load(Resource... resources)
      指定された Groovy スクリプトまたは XML ファイルから Bean 定義をロードします。

      ".xml" ファイルは XML コンテンツとして解析されることに注意してください。他のすべての種類のリソースは、Groovy スクリプトとして解析されます。

      パラメーター:
      resources - ロードする 1 つ以上のリソース
    • load

      public void load(StringSE... resourceLocations)
      指定された Groovy スクリプトまたは XML ファイルから Bean 定義をロードします。

      ".xml" ファイルは XML コンテンツとして解析されることに注意してください。他のすべての種類のリソースは、Groovy スクリプトとして解析されます。

      パラメーター:
      resourceLocations - ロード元の 1 つ以上のリソースの場所
    • load

      public void load(ClassSE<?> relativeClass, StringSE... resourceNames)
      指定された Groovy スクリプトまたは XML ファイルから Bean 定義をロードします。

      ".xml" ファイルは XML コンテンツとして解析されることに注意してください。他のすべての種類のリソースは、Groovy スクリプトとして解析されます。

      パラメーター:
      relativeClass - 指定された各リソース名をロードするときにパッケージがプレフィックスとして使用されるクラス
      resourceNames - ロードするリソースの比較的修飾された名前
    • setMetaClass

      public void setMetaClass(groovy.lang.MetaClass metaClass)
      次で指定:
      インターフェース groovy.lang.GroovyObjectsetMetaClass 
    • getMetaClass

      public groovy.lang.MetaClass getMetaClass()
      次で指定:
      インターフェース groovy.lang.GroovyObjectgetMetaClass 
    • invokeMethod

      public ObjectSE invokeMethod(StringSE name, ObjectSE args)
      次で指定:
      インターフェース groovy.lang.GroovyObjectinvokeMethod 
    • setProperty

      public void setProperty(StringSE property, ObjectSE newValue)
      次で指定:
      インターフェース groovy.lang.GroovyObjectsetProperty 
    • getProperty

      @Nullable public ObjectSE getProperty(StringSE property)
      次で指定:
      インターフェース groovy.lang.GroovyObjectgetProperty