serviço de conexão automática dentro de uma classe @ManagedBean @Component é nulo durante a solicitação JSF [duplicado]

Esta pergunta já tem uma resposta aqui:

Integração Spring JSF: como injetar um componente / serviço Spring no bean gerenciado JS 3 respostas

Tentei unir Spring 3 (MVC) com JSF 2. Tenho alguma experiência em Spring e JSF, mas nunca tentei me juntar a eles antes. No final, eu tenho 2 arquivos

@ManagedBean(name = "userBean")
@Scope
@Component
public class someBean {

  @Autowired
  private TestService testService;

  public void printString() {
    System.out.println(testService.getString());
  }
}

@ManagedBean(name = "studentBean")
@Scope
@Component
public class StudentBean {

  @Autowired
  private TestService testService;

  public void printString() {
    System.out.println(testService.getString());
  }
}

Para esses arquivos, tenho a configuração correta para spring, jsf e web.xml. E tenho a página .xhtml onde inicio printString () para 'someBean' e 'StudentBean'. Eu tenho o NPE no primeiro caso e 'alguma string' no console no segundo caso. O motivo é simples - nomes diferentes de beans no contexto Spring e JSF. todos os problemas terminaram após

@Component => @Component("userBean") 
public class someBean {

Na depuração, vi que

private TestService testService;

@Autowired
public void setTestService(TestService testservice) {
  this.testService = testService;
}

Quando o bean JSF está criando conjuntos testService, não é nulo, mas é nulo durante o ciclo de vida do JSF quando

public void pringString() {
  testService.blah();
}

testService é nulo. É o que eu não consigo entender. Alguém conhece profundamente a primavera e o JSF para descrever essa situação em detalhes?

questionAnswers(3)

yourAnswerToTheQuestion