본문 바로가기
IT/spring

스프링 @SessionAttributes 어노테이션

by 뉴코딩맨 2023. 6. 29.
@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 어노테이션을 사용하여 세션에 데이터를 유지하고 공유할 수 있으며, 이를 통해 여러 요청 간에 데이터를 효율적으로 활용할 수 있습니다.
 

댓글