Здравствуйте. Создан котроллер (см. листинг ниже), в нем имеется поле loginProccesor, которое инициализируется при создании контроллера (с помощью DI). Отмечу, что экземпляры бина LoginProccesor имеют область видимости в рамках запроса. Вопрос: почему каждый раз, когда контроллер "ловит" http запрос, внедряется новый экземпляр бина LoginProccesor (судя по хэш-кодам)? Он хоть и имеет область видимости в рамках запроса, но ведь сам контроллер у нас имеет область видимости Singleton... То есть создался один раз контроллер -> один раз вызвался его конструктор -> экземпляр loginProccesor также создался один раз и сразу же внедрился
package com.example.testproject.controllers;
import com.example.testproject.models.LoginProccesor;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class LoginController {
private final LoginProccesor loginProccesor;
public LoginController(LoginProccesor loginProccesor) {
this.loginProccesor = loginProccesor;
}
@GetMapping("/")
public String loginGet() {
return "login.html";
}
@PostMapping("/")
public String loginPost(
@RequestParam String username,
@RequestParam String password,
Model model) {
if (loginProccesor.login(username, password)) {
model.addAttribute("message", "Logged");
return "redirect:/main";
} else {
model.addAttribute("message", "Error!");
return "login.html";
}
}
}