Permettra à l'autowiring les Tâches envoyées au Printemps TaskExecutor

Comment pouvez-vous avoir une classe qui implémente Runnable et soumis à ressorts TaskExecutor autocâblés?

Par exemple, j'ai une Tâche:

public class MyTask implements Runnable {

    @Autowired private MyRepository myRepository;

    @Override
    public void run() {
        myRepository.doSomething();
    }
}

Et un service qui envoie une tâche pour le printemps TaskExecutor:

@Service
public class MyService {

    @Autowired private TaskExecutor taskExecutor;

    public void someMethod() {

        MyTask myTask = new MyTask();
        taskExecutor.execute(myTask);

    }

}

Je sais que les champs ne sont pas autocâblés parce que MyTask est arriver instancié en utilisant de nouveaux MyTask(). Cependant, comment puis-je contourner ce problème? Devrais-je avoir accès à du Printemps ApplicationContext et de créer de la fève à travers elle? Comment voulez-vous faire cela dans une application web d'environnement?

Merci!

OriginalL'auteur Brian DiCasa | 2013-04-18