스프링 세션 예제

스프링 세션은 HTTP 세션을 관리하기위한 강력한 도구입니다. 세션 저장소를 구성 클래스로 단순화하고 몇 가지 Maven 종속성으로 간소화하여 여러 응용 프로그램을 동일한 Redis 인스턴스에 연결하고 인증 정보를 공유할 수 있습니다. 스프링 세션 2.0을 시작으로 이 프로젝트는 스프링 세션 코어 모듈과 특정 데이터 저장소와 관련된 SessionRepository 구현 및 기능을 수행하는 여러 다른 모듈로 분할되었습니다. 스프링 데이터 사용자는 스프링 세션 코어 모듈이 스프링 데이터 공용에 해당하는 역할을 맡고 데이터 저장소 특정 구현을 포함하는 다른 모듈과 함께 핵심 기능 및 API를 제공하므로 이러한 배열을 잘 알고 있어야 합니다. 이 분할의 일환으로 스프링 세션 데이터 MongoDB 및 스프링 세션 데이터 GemFire 모듈을 별도의 리포지토리로 이동했습니다. 이제 프로젝트의 리포지토리/모듈이 있는 상황은 다음과 같습니다: 또한 HTTP 헤더를 통한 세션 처리를 위한 ServletFilter를 제공하므로 RESTful API에서도 사용할 수 있습니다. 이렇게 하면 프로젝트에서 필요한 JAR 종속성을 가져옵니다. 이제 프로젝트에서 스프링 세션의 실제 구현부터 시작할 수 있습니다. 세션은 별칭으로 구분됩니다.

브라우저가 저장하는 방법은 다음과 같습니다. 이는 세션 만료와 같은 것들이 구현에 따라 크게 달라지기 때문입니다. 즉, 만료된 세션을 정리해야 하는 경우 만료된 세션을 정리해야 합니다. 스프링 세션은 세션이벤트HttpSessionListena어를 선언하여 세션파괴된 이벤트 및 세션생성 이벤트를 HttpSessionEvent로 변환하여 HttpSessionListener를 지원합니다. 이 지원을 사용하려면 첫 번째 종속성이 Redis에 대한 실제 스프링 세션 지원입니다. 그러나 더 이상 Redis 드라이버를 포함하지 않으므로 스프링 데이터 Redis를 포함하여 제공해야합니다. 그냥 스프링 부팅 응용 프로그램은 우리의 응용 프로그램을 실행합니다. Redis ReactiveSessionRepository를 사용하는 Spring WebFlux의 WebSession 관리를 위한 추가 지원 결과, 노드 그룹의 다른 서버가 실패하더라도 최종 사용자(sticky-session)가 발견한 중단 없이 테이크업을 할 수 있습니다. Gradle은 Maven BOMs에 대한 일류 지원이 없으므로 Spring의 종속성 관리 플러그인을 사용할 수 있습니다. 이렇게 하면 세션 인스턴스를 반환하는 FindByIndexNameSessionRepository를 제공하도록 스프링 세션도 구성한 것으로 가정합니다. HttpSession을 사용하는 모든 것보다 서볼레 필터를 추가하여 HttpSession과 함께 스프링 세션을 사용할 수 있습니다.

사용자 지정 SessionRepository API 구현은 매우 간단한 작업이어야 합니다. 사용자 지정 구현을 @EnableSpringHttpSession 지원으로 결합하면 기존 Spring 세션 구성 시설 및 인프라를 재사용할 수 있습니다.