سؤال

تطبيق Grails الخاص بي يحتوي على حبوب الربيع التالية محددة في spring/resources.groovy

calendarService(CalendarService) { bean ->
    bean.initMethod = "init"     
}

هذه الطريقة تبدو مثل:

class CalendarService {
    void init() {
        User.findByEmail("foo@doo.com")
    }   
}

عندما أدعو الباحث الديناميكي findByEmail أحصل على MissingMethodException. أظن أني أحاول استدعاء هذه الطريقة في وقت مبكر جدًا ، أي قبل أن تكون فصول المجال قد تمت إضافة الباحثين الديناميكيين إلى metaclass. حل واحد هو الاتصال CalendarService.init() نفسي من Bootstrap.init, ، بدلاً من تعليمات الربيع للاتصال به ، ولكن هل هناك حل أفضل؟

شكرا ، دون

لا يوجد حل صحيح

نصائح أخرى

أنت على حق ، كما هو موضح في هذا بريد, ، إذا كنت بحاجة إلى الأساليب الديناميكية ، فمن الأفضل أن تذهب مع bootstrap.groovy

BootStrap {
    def calendarService
    def init() {
        calendarService.init()
    }
}

الأعمال التالية دون أي تكوين في resources.groovy

class CalendarService {

    @PostConstruct
    private void init() {
        User.findByEmail("foo@doo.com")
    }   
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top