У меня есть компонент на основе области действия:
@Component
@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class User
{
private LocalDateTime timestamp;
public User() {
System.out.println("I am created.");
timestamp = LocalDateTime.now();
}
}
У меня есть одноэлементный контроллер:
@Controller
public class TestController {
@Resource
private User test;
@GetMapping(value = {"/"})
public String request() {
System.out.println(test.getTimestamp().atZone(zone).format(format));
}
}
Это работает, однако как я могу создать объект User на основе @CookieValue(value = "auth", required = false) String cookie
?(Поиск в БД) Пружинные аннотации внутри конструктора компонента не допускаются.
Использование @SessionAttribute
на контроллере и @ModelAttribute
на методе с комбинацией ControllerAdvice
работает, как и ожидалось, но это другой подход.