[DEV] 기록

SpringBoot) Redis namespace 변경하는 방법

꾸준함. 2020. 9. 18. 23:11

개요

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

반응형