SpringBoot : 2.2.2.RELEASE
spring-session-jdbc : 2.2.0.RELEASE
compile('org.springframework.session:spring-session-jdbc:') 로 spring-session-jdbc를 추가.
Library에서 spring-session-jdbc를 찾아 들여다 보면,
org.springframework.session.jdbc 내부에 Session 데이터를 저장하기 위한 Table 쿼리문들이 있다.
이 sql 파일중에 내가 연결하는 DB와 맞는 쿼리를 실행시켜서 Table을 만들고 @EnableJdbcHttpSession 로 연결시켜주면 HttpSession에 setAttribute로 저장하면 DB에 자동으로 저장되고 심지어 Expire Time 까지 알아서 관리해주는 마법같은 일이 일어난다!
그런데
나는 application.properties 에 spring.session.jdbc.initialize-schema=always 와 같은
spring session 세팅만 하면 되는줄 알았다. 구글에 아무리 찾아봐도 이렇게 하라고 나와있었다.
심지어 공식 Repo에서도 다음과 같이 안내하고 있었다.
https://docs.spring.io/spring-session/docs/current/reference/html5/guides/boot-jdbc.html
Spring Repo도 찾아보고 구글도 열심히 뒤져봤지만 답이 나오지 않았다.
혹시나 이유를 알게 되면 댓글이라도 달아주세요...
도대체 왜 안되는지 모르겠지만.. 약간의 꼼수를 써서 해결했다.
spring-session-jdbc를 쓰지 않고 datasource에 우겨넣어서 해결했다. 이렇게 하는게 맞는지 모르겠지만..
application.properties
spring.datasource.initialization-mode=always
spring.datasource.schema=classpath:org/springframework/session/jdbc/schema-postgresql.sql
'개발공부 > 시행착오' 카테고리의 다른 글
django - No Python interpreter configured for the module (0) | 2020.04.16 |
---|---|
Spring - No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' call 에러 해결 (0) | 2020.02.28 |
git - 잘못 push한 폴더 삭제하기 (0) | 2020.02.12 |
intellij - @Table(name = " 빨간줄 " ) 이 뜰 경우 빨간줄을 없애는 방법 (0) | 2020.02.07 |
git - PR(pull request) 이란 (0) | 2020.02.04 |