2010-12-21 14 views
7

Potrzebuję utworzyć zadanie w locie w mojej aplikacji. Jak mogę to zrobić? Mogę otrzymać harmonogram z adnotacją @autowired, ale program planujący pobiera obiekty Runnable. Muszę podać obiekty Spring, aby moje zadania mogły również używać adnotacji @autowired.Tworzenie programowego zadania Spring Framework?

@Autowired private TaskScheduler taskScheduler; 

Odpowiedz

16

Wystarczy owinąć obiekt docelowy w Runnable, i twierdzą, że:

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

Nie mam dostępu do cel w tym kontekście. Eclipse mówi o błędzie sytnax. – newbie

+1

@newbie: Tak, podałem ci ogólny pomysł, a nie działający kod. – skaffman

+0

problem został zmieniony, dodałem narzędzia Runnable do mojej klasy zadania (vel cel) – newbie

Powiązane problemy