Prototype Bean no se cablea automáticamente como se esperaba

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 puede ver, estoy tratando de averiguar si un nuevoTestClass se inyectó cuando visitó "xxx / test"."new test class constructed." se imprimió solo una vez (la primera vez que activé "xxx / test") mientras esperaba que se imprimiera por igual. ¿Eso es malo?@Autowired objeto solo puede ser@Singleton? Cómo@Scope trabajo entonces?

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());
    }
}

Lo intenté@Valerio Vaudi solución, registrada comoScope(scopeName = "request"). Aquí está el resultado de tres veces cuando visito "xxx / test"

(primera vez)

nueva clase de prueba construida.nulo

(segundo)

nulo

(tercero)

nulo

No entiendo por qué el resultado es nulo, ya que no reconstruye uno nuevo cada vez que lo uso.

Entonces intenté@Nikolay Rusev solución@Scope("prototype"):

(primero)

uno nuevo construido.uno nuevo construido.nulo

(segundo)

uno nuevo construido.uno nuevo construido.nulo

(tercero)

uno nuevo construido.uno nuevo construido.nulo

Esto es bastante fácil de entender ya que cada vez que lo uso (TestClass), Spring regenera automáticamente una nueva instancia. Pero todavía no puedo entender la primera escena, ya que parece retener solo una nueva instancia para cada solicitud.

El verdadero propósito es: En cada ciclo de vida de solicitud, un nuevotestClass es obligatorio (si es necesario) y solo se requiere uno. En este momento parece soloApplicationContext la solución es factible (lo cual ya sabía), pero solo quiero saber si esto podría hacerse automáticamente usando@Component + @Scope + @Autowired.

Respuestas a la pregunta(5)

Su respuesta a la pregunta