[백업][가리사니] 스프링 부트 세션 컴포넌트
certificate, redis, spring
이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.
스프링 부트 세션 시리즈
서론
이전 강의 스코프빈에서 하나의 문제가 생겼습니다. 위에서 처럼 클래스 전체를 시리얼라이즈로 쓴다면, 하나의 클래스에 대량의 맴버가 들어갈때.. 단순히 하나의 맴버만 수정하거나 로드할때 너무많은 자원을 소비할 것 입니다. 그래서 HttpSession 를 @Autowired 가 될지 테스트 해보았습니다.
SessionWire
@Component
public class SessionWire
{
@Autowired
HttpSession httpSession;
private final static String NAME = "NAME";
public String getName()
{
return (String)httpSession.getAttribute(NAME);
}
public void setName(String name)
{
httpSession.setAttribute(NAME, name);
}
public String getId()
{
return httpSession.getId();
}
public String toString()
{
return getId() + " : " + getName();
}
}
컨트롤러
@Controller
public class UsingSessionTestController
{
// 세션 컴포넌트
@Autowired
SessionWire sessionWire;
@ResponseBody
@RequestMapping(path="/se-set", produces="text/plain")
public String seSet()
{
sessionWire.setName("hello!! session");
return "SET session";
}
@ResponseBody
@RequestMapping(path="/se-get", produces="text/plain")
public String seGet()
{
return sessionWire.toString();
}
}
실행
보시는 것과 같이 적용되었습니다. 조만간 스프링의 전체적인 생명주기나 흐름을 조사해서 강의로 써봐야할 것 같습니다.