Pourquoi ne permettra à l'autowiring de ne pas fonctionner dans un thread?

J'ai fait un projet maven au Printemps 3.0, j'ai fait quelques DAO, des services et des contrôleurs, dans l'un de mes contrôleur-je appeler un service dans lequel j'ai démarrer un thread, le problème est que dans le thread, j'ai déclarer une "variable" qui doit être initialisé avec Autocâblés annotiation, mais il ne fonctionne pas et la variable n'est pas initilized et a la valeur null.

c'est la classe thread

package com.project.tasks;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Component;
import com.project.entities.user.User;
import com.project.services.IUserService;
@Component
public class AddFriendInMyFriendListTaskExecutor {
private class AddFriendInMyFriendListTask implements Runnable {
//HERE IS THE PROBLEM
@Autowired
private IUserService uService;
private User a;
private User b;
public AddFriendInMyFriendListTask() {
;
}
public AddFriendInMyFriendListTask(User aA, User bB) {
a = aA;
b = bB;
}
public User getA() {
return a;
}
public void setA(User a) {
this.a = a;
}
public User getB() {
return b;
}
public void setB(User b) {
this.b = b;
}
public void run() {
//FROM HERE IT PRINTS THE VALUE OF uService THAT IS NULL
System.out.println("uService:" + uService);
uService.insertRightUserIntoLeftUserListOfFriends(a, b);
}
}
private TaskExecutor taskExecutor;
public AddFriendInMyFriendListTaskExecutor(TaskExecutor taskExecutor) {
this.taskExecutor = taskExecutor;
}
public void doIt(User a, User b) {
taskExecutor.execute(new AddFriendInMyFriendListTask(a, b));
}
}

c'est le morceau de code qui appelle le fil

    User a = uDao.getUser(hrA.getMyIdApp());
User b = uDao.getUser(hrA.getOtherIdApp());
SimpleAsyncTaskExecutor taskExecutor = new SimpleAsyncTaskExecutor();
AddFriendInMyFriendListTaskExecutor tmp = new AddFriendInMyFriendListTaskExecutor(taskExecutor);
tmp.doIt(a, b);

Je tiens à souligner que dans tous les autres tests dans lesquels je n'ai pas l'appeler tous les threads, les Autocâblés d'un UserService exemple fonctionne correctement!
La méthode que j'appel: insertRightUserIntoLeftUserListOffriends(l'Utilisateur a Utilisateur b), fonctionne correctement.

OriginalL'auteur user942458 | 2011-09-13