Прототип Bean не подключается автоматически, как ожидалось

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() {

    }

}

Как видите, я пытаюсь выяснить, является ли новыйTestClass был введен при посещении "ххх / тест"."new test class constructed." был напечатан только один раз (в первый раз я вызвал «xxx / test»), в то время как я ожидал, что он будет напечатан одинаково. Это значит@Autowired объект может быть только@Singleton? Как@Scope работать тогда?

РЕДАКТИРОВАТЬ:

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

Я старался@Valerio Vaudi решение, зарегистрированное какScope(scopeName = "request"), Вот трижды результат, когда я посещаю "ххх / тест"

(первый раз)

новый тестовый класс построен.ноль

(Второй)

ноль

(в третьих)

ноль

Я не понимаю, почему результат нулевой, так как он не восстанавливает новый каждый раз, когда я его использую.

Потом я попробовал@Nikolay Rusev решение@Scope("prototype"):

(первый)

новый построен.новый построен.ноль

(Второй)

новый построен.новый построен.ноль

(в третьих)

новый построен.новый построен.ноль

Это довольно легко понять, поскольку каждый раз, когда я его использую (TestClass), Spring автоматически создает новый экземпляр. Но первая сцена, которую я до сих пор не могу понять, так как она, кажется, сохраняет только один новый экземпляр для каждого запроса.

Настоящая цель: В каждом жизненном цикле запроса, новыйtestClass требуется (если необходимо), и только один требуется. В данный момент кажется толькоApplicationContext решение выполнимо (что я уже знал), но я просто хочу знать, может ли это быть сделано автоматически с помощью@Component + @Scope + @Autowired.

Ответы на вопрос(5)

Ваш ответ на вопрос