이미 구현한 Spring Session의 데이터를 MySQL에 저장하는 방법에 대해서 알아볼거에요.
예제 소스가 필요하신 분은 아래 글을 참고해주세요.
build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.session:spring-session-jdbc'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' // MariaDB
}
application.yml
spring:
datasource:
url: jdbc:mariadb://localhost:3306/tutorial
driver-class-name: org.mariadb.jdbc.Driver
username: root
password: 1234
session:
timeout: 600
store-type: jdbc
jdbc:
initialize-schema: always
table-name: SPRING_SESSION
jpa:
open-in-view: false
generate-ddl: true
서버를 실행하면 테이블 두 개가 만들어져요.
세션 ID가 만들어지면 아래와 같이 데이터가 INSERT 되요.
Redis나 MongoDB와는 달리 세션이 만료될 경우 데이터베이스에서 자체적으로 삭제되지 않고 Spring 서버에서 로직을 통해 삭제되게 되어있어요.
또한, 테이블 두 개로 나뉘어 관계형으로 설계되어있고 key도 걸려있어서 데이터 복잡도도 존재합니다.
세션 관리에는 불리한 면이 없지 않아 있습니다.
저는 실무에서 세션 데이터를 RDBMS에 저장하는 건 아직 보지 못했네요 ㅠㅠ
'Backend > Spring' 카테고리의 다른 글
JPA @ManyToOne Join (Only JpaRepository) (0) | 2019.11.11 |
---|---|
Spring Boot Interceptor 적용 (0) | 2019.10.16 |
Spring Boot Session MongoDB 연동, 저장 (0) | 2019.10.16 |
Spring Boot Session Redis 연동, 저장 (2) | 2019.10.16 |
Spring Boot Session 사용하기 (Bean Scope) (3) | 2019.10.16 |