- Gradle 7.0.2
- Java 11
- Spring Boot 2.5.0
- H2 Database
build.gradle
spring-session-jdbc
는 세션을 데이터베이스에 저장하도록 한다.
implementation 'org.springframework.session:spring-session-jdbc'
application.yml
spring.session.stor-type= jdbc
로 설정해주어야 한다. 이렇게 하면 프로젝트를 실행할 때 SPRING_SESSION
테이블과 SPRING_SESSION_ATTRIBUTES
테이블이 자동으로 생성된다.
spring:
session:
store-type: jdbc
하지만..?
아무리해도 자동으로 생성되지 않았음.. spring.session.jdbc.initialize-schema= always
로 설정해주니 생성됐다.
spring:
session:
store-type: jdbc
jdbc.initialize-schema: always
만약.. 그래도 안 된다면?
수동..생성하자..
CREATE TABLE SPRING_SESSION (
PRIMARY_ID CHAR(36) NOT NULL,
SESSION_ID CHAR(36) NOT NULL,
CREATION_TIME BIGINT NOT NULL,
LAST_ACCESS_TIME BIGINT NOT NULL,
MAX_INACTIVE_INTERVAL INT NOT NULL,
EXPIRY_TIME BIGINT NOT NULL,
PRINCIPAL_NAME VARCHAR(100),
CONSTRAINT SPRING_SESSION_PK PRIMARY KEY (PRIMARY_ID)
);
CREATE UNIQUE INDEX SPRING_SESSION_IX1 ON SPRING_SESSION (SESSION_ID);
CREATE INDEX SPRING_SESSION_IX2 ON SPRING_SESSION (EXPIRY_TIME);
CREATE INDEX SPRING_SESSION_IX3 ON SPRING_SESSION (PRINCIPAL_NAME);
CREATE TABLE SPRING_SESSION_ATTRIBUTES (
SESSION_PRIMARY_ID CHAR(36) NOT NULL,
ATTRIBUTE_NAME VARCHAR(200) NOT NULL,
ATTRIBUTE_BYTES LONGVARBINARY NOT NULL,
CONSTRAINT SPRING_SESSION_ATTRIBUTES_PK PRIMARY KEY (SESSION_PRIMARY_ID, ATTRIBUTE_NAME),
CONSTRAINT SPRING_SESSION_ATTRIBUTES_FK FOREIGN KEY (SESSION_PRIMARY_ID) REFERENCES SPRING_SESSION(PRIMARY_ID) ON DELETE CASCADE
);
'STUDY > Spring' 카테고리의 다른 글
Spring Boot | Querydsl 추가 (Gradle 7.x) (1) | 2021.08.10 |
---|---|
Spring Boot | Spring Security Debug 콘솔 출력하기 (0) | 2021.06.25 |
Spring Boot | OAuth2 Google 로그인 (0) | 2021.06.09 |
Spring Boot | REST Docs 적용하기 ( + build failed 해결.. ) (9) | 2021.06.03 |
JUnit5 | multipart/formdata 전송 테스트 ( MockMultipartFile, @RequsetPart ) (2) | 2021.06.01 |