Wie verbinde ich einen Quartz Scheduler mit meinem Spring-Kontext?

8

Ich habe eine Anwendung, in der ich ein Quartz Scheduler -Objekt verwenden möchte. Ich habe die Spring-Dokumentation diesbezüglich gelesen und sie schlagen vor, ein SchedulerFactoryBean wie folgt zu verwenden:

%Vor%

Die Konfiguration sieht so aus:

%Vor%

Wenn ich schedulerFactoryBean in eines meiner Objekte injizieren möchte, bekomme ich eine Ausnahme mit:

Could not convert constructor argument value of type [org.quartz.impl.StdScheduler] to required type [org.springframework.scheduling.quartz.SchedulerFactoryBean]:

Warum bekomme ich StdScheduler statt schedulerFactoryBean ? Vermisse ich einen Konfigurationsschritt?

    
Adam Arold 04.02.2014, 15:51
quelle

2 Antworten

16

A SchedulerFactoryBean ist ein FactoryBean , also kann nicht wie eine normale Bohne verwendet werden . Wenn Sie es in andere Beans injizieren, injiziert Spring das org.quartz.Scheduler -Objekt, das von der Fabrik produziert wird. Es injiziert nicht die Fabrik selbst.

Es ist üblich, die Factory-Bean nach dem von ihr erstellten Objekt zu benennen, da sie besser lesbar ist, wenn Sie sie referenzieren. Zum Beispiel:

%Vor%

Dann können Sie ein Objekt konfigurieren, das ein Scheduler wie folgt benötigt:

%Vor%

Oder verwenden Sie Anmerkungen:

%Vor%     
Will Keeling 04.02.2014, 16:59
quelle
0

SchedulerFactoryBean erstellt und konfiguriert ein org.quartz.Quartz, verwaltet seinen Lebenszyklus als Teil des Spring-Anwendungskontexts und macht den Scheduler als Bean-Referenz für die Abhängigkeitsinjektion verfügbar.

%Vor%

und du kannst

%Vor%     
bearlee 15.06.2016 09:54
quelle

Tags und Links