5

サービスを呼び出す必要があるコマンド クラスがあります。

import org.codehaus.groovy.grails.commons.ApplicationHolder as AH

class FilterVisitCommand {

    def accessRightsService = AH.application.mainContext.accessRightsService
    def customerService = AH.application.mainContext.customerService
...
}

アプリケーション ホルダーによるこの種のサービス定義は機能していますが、非推奨です。サービスを注入する別の方法はありますか? コマンドクラスは「def accessRightsService」のみ動作しません。

4

2 に答える 2

15

検証のためにコマンド オブジェクトにサービスを挿入する場合は、コマンド オブジェクトを介してサービスを参照する必要がある場合があります。

class FilterVisitCommand {

    def accessRightsService

    static constraints = {
        foo(validator: { foo, cmd ->
            cmd.accessRightsService.bar()
        })
    }
}
于 2012-04-18T03:50:27.323 に答える
0

Grails リッチ ドメインプラグインは、通常の Groovy クラスのサービス インジェクション、検証などを可能にします。

于 2012-04-17T12:52:02.917 に答える