[백업][가리사니] 스프링 부트 세션 스코프빈
redis, spring

이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.

스프링 부트 세션 시리즈

서론

저번시간에 레디스 세션을 연결해 보았으니 이번엔 세션 스코프빈을 만들어보겠습니다.

@Scope(value="session", proxyMode = ScopedProxyMode.TARGET_CLASS)
@Component
@Data
public class SessionScope implements Serializable
{
	private static final long serialVersionUID = 1L;

	@Getter @Setter
	private String msg;

	@Getter @Setter
	private Date date;

	public String toString()
	{
		return msg + " : " + date;
	}
}

테스트 컨트롤

@Controller
public class UsingSessionTestController
{
	// 세션스코프
	@Autowired
	SessionScope sessionScope;

	@ResponseBody
	@RequestMapping(path="/se-set", produces="text/plain")
	public String seSet() throws UnsupportedEncodingException, FileNotFoundException, IOException
	{
		sessionScope.setMsg("Hi");
		sessionScope.setDate(new Date());
		return "SET session";
	}

	@ResponseBody
	@RequestMapping(path="/se-get", produces="text/plain")
	public String seGet()
	{
		return sessionScope.toString();
	}
}

/se-set 에서는 현재시간과 함게 Hi 가 입력되고. /se-get 에서 꺼내볼 수 있으면 성공!! 레디스 데스크톱 매니저로 확인하면 sessionAttr:scopedTarget.sessionScope 라는 key 이름으로 SessionScope 클래스가 시리얼라이즈 되어 들어간게 확인됩니다. @Component 에 값을 지정해주면 sessionAttr:scopedTarget.<@Component 값>으로 들어갑니다.