O protótipo Bean não é conectado automaticamente conforme o esperado

TestController.java

@RestController
public class TestController {

    @Autowired
    private TestClass testClass;

    @RequestMapping(value = "/test", method = RequestMethod.GET)
    public void testThread(HttpServletResponse response) throws Exception {
        testClass.doSomething();
    }
}

TestClass.java

@Component
@Scope("prototype")
public class TestClass {

    public TestClass() {
        System.out.println("new test class constructed.");
    }

    public void doSomething() {

    }

}

Como você pode ver, estou tentando descobrir se um novoTestClass foi injetado quando visita "xxx / test"."new test class constructed." foi impresso apenas uma vez (pela primeira vez, iniciei "xxx / test") enquanto esperava que fosse impresso igualmente. Isso significa@Autowired objeto só pode ser@Singleton? Como@Scope trabalhar então?

EDITAR:

TestController.java

@RestController
public class TestController {

    @Autowired
    private TestClass testClass;

    @RequestMapping(value = "/test", method = RequestMethod.GET)
    public void testThread(HttpServletResponse response) throws Exception {
        testClass.setProperty("hello");
        System.out.println(testClass.getProperty());
    }
}

eu tentei@Valerio Vaudi solução, registrada comoScope(scopeName = "request"). Aqui está o resultado de três vezes quando visito "xxx / test"

(primeira vez)

nova classe de teste construída.nulo

(segundo)

nulo

(terceiro)

nulo

Não entendo por que o resultado é nulo, pois ele não reconstrói um novo cada vez que o uso.

Então eu tentei@Nikolay Rusev solução@Scope("prototype"):

(primeiro)

novo construído.novo construído.nulo

(segundo)

novo construído.novo construído.nulo

(terceiro)

novo construído.novo construído.nulo

Isso é fácil de entender, pois cada vez que eu o uso (TestClass), o Spring gera novamente uma nova instância automaticamente. Mas a primeira cena que ainda não consigo entender, pois parece reter apenas uma nova instância para cada solicitação.

O verdadeiro objetivo é: Em cada ciclo de vida da solicitação, um novotestClass é necessário (se necessário) e apenas um é necessário. Neste momento parece apenasApplicationContext solução é viável (o que eu já sabia), mas eu só quero saber se isso pode ser feito automaticamente usando@Component + @Scope + @Autowired.

questionAnswers(5)

yourAnswerToTheQuestion