0

ドキュメントによると、GrailsApplicationAwareインターフェースは

プラグインで登録したクラスで実装できる便利なインターフェース。

したがって、おそらくこのインターフェースを実装する Spring Bean は、それを使用して のインスタンスを取得できますGrailsApplication。しかし、他のオブジェクトが同じ目的でこのインターフェースを実装できるでしょうか? が何を意味するのか私にははっきりしない

プラグインによって登録されるクラス

4

1 に答える 1

4

これは、次のような標準のSpringインターフェースと同じように機能します-インターフェースを実装するApplicationContextAware任意のBean(アーティファクトとして暗黙的に登録されているかresources.xmlresources.groovyまたはプラグインに明示的に登録されているかに関係なく)は、明示的に名前を付ける必要なく、フレームワークによって自動的にメソッドが呼び出されますプロパティまたは自動配線をオンにします。doWithSpringsetGrailsApplication(GrailsApplication ga)

オートワイヤーを行うように設定された Bean (Grails サービスなど) の場合GrailsApplicationAware、 を実装する必要はありません。メソッドを提供するだけで済みますsetGrailsApplication(Groovy プロパティ定義がdef grailsApplication作成します)。GrailsApplicationという名前の Bean grailsApplication。またはもちろん、Bean を明示的に注入することもできます

doWithSpring = {
  myPluginBean(MyPluginBean) {
    grailsApplication = ref('grailsApplication')
  }
}
于 2013-03-08T10:34:27.770 に答える