@SessionAttributes 어노테이션은 스프링 프레임워크에서 사용되는 어노테이션 중 하나로, 세션에 데이터를 유지하기 위해 사용됩니다. @SessionAttributes 어노테이션에 대해 자세히 알아보고, 예시를 통해 설명하도록 하겠습니다.
@SessionAttributes 어노테이션의 역할
@SessionAttributes 어노테이션은 컨트롤러 클래스 레벨에서 사용되며, 세션에 저장할 데이터를 지정하는 역할을 합니다. 세션에 저장된 데이터는 여러 요청 간에 공유되어 사용될 수 있습니다.
@SessionAttributes 어노테이션 예시
아래는 @SessionAttributes 어노테이션을 사용한 예시입니다.
@Controller
@SessionAttributes("user")
public class UserController {
@GetMapping("/login")
public String loginForm(Model model) {
model.addAttribute("user", new User());
return "login";
}
@PostMapping("/login")
public String login(@ModelAttribute("user") User user) {
// 로그인 처리 로직
return "redirect:/home";
}
@GetMapping("/home")
public String home(@ModelAttribute("user") User user) {
// 홈 화면 로직
return "home";
}
}
위의 예시에서 @SessionAttributes("user") 어노테이션을 사용하여 "user"라는 이름의 모델 속성을 세션에 저장하고 유지합니다. loginForm() 메소드에서는 초기 로그인 폼을 보여주기 위해 "user" 속성을 모델에 추가합니다. login() 메소드와 home() 메소드에서는 @ModelAttribute("user") 어노테이션을 사용하여 세션에 저장된 "user" 속성을 매개변수로 받아옵니다.
이렇게 함으로써 login() 메소드와 home() 메소드에서는 세션에 저장된 사용자 정보를 활용할 수 있습니다.
마무리
스프링의 @SessionAttributes 어노테이션에 대해 알아보았습니다. @SessionAttributes 어노테이션을 사용하여 세션에 데이터를 유지하고 공유할 수 있으며, 이를 통해 여러 요청 간에 데이터를 효율적으로 활용할 수 있습니다.
'IT > spring' 카테고리의 다른 글
스프링 @ControllerAdvice 어노테이션 (0) | 2023.06.30 |
---|---|
스프링 MultipartResolver (0) | 2023.06.29 |
스프링 @RequestParam 어노테이션 (0) | 2023.06.29 |
스프링 @ModelAttribute 어노테이션 (0) | 2023.06.29 |
스프링 @RequestMapping 어노테이션 (0) | 2023.06.29 |
댓글