티스토리 뷰
외주 작업중인 프로젝트에 계속해서 다양한 모듈이 붙으면서 여러 프로젝트의 세션을 공유할 필요가 생겼다. 협업 환경에 대한 사정으로 사용하지 못해, 정리 해둔 내용을 훗날 쓸지 몰라서 기록한다. 처음엔 관계형DB에 넣기 위해 JDBC 세션을 사용했다가 전부터 눈여겨보던 Redis를 도입하기로 결정했다.
가정
로컬에선 Embedded Redis를 사용하고, 테스트 환경에선 라즈베리파이 3에 독립형 Redis를 설치해서 사용한다고 가정한다.
Dependency
compile('org.springframework.boot:spring-boot-starter-data-redis')
compile('org.springframework.session:spring-session-data-redis')
compile group: 'it.ozimov', name: 'embedded-redis', version: '0.7.2'
Embedded Redis 설정(로컬용)
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import redis.embedded.RedisServer;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.io.IOException;
@Profile("local")
@Configuration
public class EmbeddedRedisConfig {
@Value("${spring.redis.port}")
private int redisPort;
private RedisServer redisServer;
@PostConstruct
public void redisServer() throws IOException {
redisServer = new RedisServer(redisPort);
redisServer.start();
}
@PreDestroy
public void stopRedis() {
if (redisServer != null) {
redisServer.stop();
}
}
}
Standalone Redis 설치(테스트 환경용)
http://smallgiant.tistory.com/71
Session 설정
@Configuration
@EnableRedisHttpSession
public class SessionConfig extends AbstractHttpSessionApplicationInitializer {
}
application.yml
spring:
profiles: local
redis:
host: localhost
port: 6379
---
spring:
profiles: test
redis:
host: 테스트서버_아이피
port: 6379
세션이 저장됐는지 확인
'Java > Spring' 카테고리의 다른 글
Spring boot JSP 에러 페이지 출력 (0) | 2018.06.28 |
---|---|
외장 톰캣과 내장 톰캣을 이용할 때 차이. (0) | 2018.06.28 |
파일 업로드 & 다운로드 규칙을 정해보자. (0) | 2018.06.26 |
Thymeleaf 사용시 org.thymeleaf.exceptions.TemplateInputException: Error resolving template "/index", template might not exist or might not be accessible by any of the configured Template Resolvers (1) | 2018.06.25 |
Spring Boot + Mybatis에서 쿼리 로그 확인하기 (0) | 2018.03.22 |
댓글