2012-04-17 11 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

'राइट्स सेवा' का उपयोग क्यों नहीं करता है? – doelleri

उत्तर

0

Grails rich domain प्लगइन नियमित ग्रोवी कक्षाओं के लिए सेवा इंजेक्शन, सत्यापन, ... सक्षम बनाता है।

14

यदि आप सत्यापन के लिए कमांड ऑब्जेक्ट में कोई सेवा इंजेक्शन दे रहे हैं, तो आपको कमांड ऑब्जेक्ट के माध्यम से सेवा का संदर्भ देने की आवश्यकता हो सकती है।

class FilterVisitCommand { 

    def accessRightsService 

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

यह होना चाहिए, और यह ठीक है कि आप इसे 1.3.x में कैसे करेंगे। –

+0

उत्तर के लिए धन्यवाद। लेकिन मैं कमांड क्लास में रखी गई विधि में सेवा का उपयोग कैसे कर सकता हूं? – John

संबंधित मुद्दे