2012-04-17 8 views
5

私はサービスを呼び出す必要があるコマンドクラスを持っています。Grails:コマンドオブジェクトへのサービスの挿入

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"だけが動作しません。

+0

「def accessRightsService」が機能しないのはなぜですか? – doelleri

答えて

0

Grails rich domainプラグインを使用すると、通常のGroovyクラスのサービス注入、検証などが可能になります。

14

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

class FilterVisitCommand { 

    def accessRightsService 

    static constraints = { 
     foo(validator: { foo, cmd -> 
      cmd.accessRightsService.bar() 
     }) 
    } 
} 
+0

これはそうでなければなりません。これは1.3.xでのやり方とまったく同じです。 –

+0

答えをありがとう。しかし、どのようにコマンドクラスに置かれたメソッドでサービスにアクセスできますか? – John

関連する問題