2010-12-21 13 views
7

Ich muss Aufgabe in meiner App im laufenden Betrieb erstellen. Wie kann ich das machen? Ich kann Scheduler mit @autowired Annotation bekommen, aber Scheduler nimmt Runnable Objekte. Ich muss Spring-Objekte geben, so dass meine Aufgaben auch @autowired Annotation verwenden können.Spring Framework-Aufgabe programmgesteuert erstellen?

@Autowired private TaskScheduler taskScheduler; 

Antwort

16

Sie müssen nur in einem Runnable Ihr Zielobjekt wickeln, und tragen vor, dass:

private Target target; // this is a Spring bean of some kind 
@Autowired private TaskScheduler taskScheduler; 

public void scheduleSomething() { 
    Runnable task = new Runnable() { 
     public void run() { 
      target.doTheWork(); 
     } 
    }; 
    taskScheduler.scheduleWithFixedDelay(task, delay); 
} 
+0

ich nicht Ziel in diesem Zusammenhang zugreifen kann. Eclipse sagt Sytnax-Fehler. – newbie

+1

@newbie: Ja, ich gab Ihnen die allgemeine Idee, nicht funktionierenden Code. – skaffman

+0

Problem sovled, fügte ich implementiert Runnable zu meiner Task-Klasse (aka Ziel) – newbie

Verwandte Themen