[백업][가리사니] 스프링 부트 세션 컴포넌트
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();
	}
}

실행

보시는 것과 같이 적용되었습니다. 조만간 스프링의 전체적인 생명주기나 흐름을 조사해서 강의로 써봐야할 것 같습니다.