개요
Redis에 세션을 별도의 namespace에 저장하려고 application.yml 에 spring.session.redis.namespace: {별도로 정의한 네임스페이스}와 같이 저장을 했지만 Default 네임스페이스에 저장을하는 오류가 발생했습니다.
문제점
문제는 Application.java에 @EnableRedisHttpSession 어노테이션을 선언할 때 redisNamespace를 별도로 정의해주지 않을 경우 디폴트 네임스페이스인 "spring:session"가 application.yml에 설정한 spring.session.redis.namespace을 덮어쓰는 특성이 있기 때문에 발생했습니다.
해결법
해결법은 앞서 문제점에서 언급한대로 @EnableRedisHttpSession 어노테이션을 선언해줄 때 redisNamespace도 같이 정의해줘야합니다.
예시는 아래와 같습니다.
application.yml
spring:
session:
store-type: redis
redis:
flush-mode: on-save
namespace: {별도로 정의한 네임스페이스}
Application.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
@SpringBootApplication
@EnableAspectJAutoProxy
@EnableRedisHttpSession(redisNamespace = "${spring.session.redis.namespace}")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
출처: stackoverflow.com/questions/35319099/modify-prefix-key-in-spring-session-with-redis
반응형
'[DEV] 기록' 카테고리의 다른 글
[SpringBoot] There is no PasswordEncoder mapped for the id "null" (0) | 2020.12.15 |
---|---|
도로명주소 OpenApi Thymeleaf + SpringBoot 연동 (0) | 2020.12.02 |
Eclipse) The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path (0) | 2020.09.16 |
크롬 브라우저 HSTS 제거하는 방법 (0) | 2020.09.15 |
Eclipse ctrl + space 자동완성이 안 될 경우 (0) | 2020.09.10 |