
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package com.takensoft.common.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* @author takensoft
* @since 2025.03.12
* @modification
* since | author | description
* 2025.03.12 | takensoft | 최초 등록
*
* redis 설정을 위한 Config
*/
@Configuration
public class RedisConfig {
@Value("${redis.host}")
private String redisHost;
@Value("${redis.port}")
private int redisPort;
@Value("${config.allow-multiple-logins}") // 기본값 false (중복 로그인 비허용)
private boolean allowMultipleLogin;
@Bean
@ConditionalOnProperty(name = "config.allow-multiple-logins", havingValue = "false", matchIfMissing = true) //redis 사용 안 할 경우 빈 등록x
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory(redisHost, redisPort);
}
@Bean
@ConditionalOnProperty(name = "config.allow-multiple-logins", havingValue = "false", matchIfMissing = true) //redis 사용 안 할 경우 빈 등록x
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, String> redisTemp = new RedisTemplate<>();
redisTemp.setConnectionFactory(redisConnectionFactory);
redisTemp.setKeySerializer(new StringRedisSerializer());
redisTemp.setValueSerializer(new StringRedisSerializer());
return redisTemp;
}
/**
* @return allowMultipleLogin - 중복로그인 허용/비허용 반환
*
* 중복 로그인 허용 여부를 반환하는 메서드
*/
public boolean isAllowMultipleLogin() {
return allowMultipleLogin;
}
/**
* @return allowMultipleLogin - 중복로그인 허용/비허용 반환
*
* 관리자가 설정을 변경할 수 있도록 Setter 추가
*/
public void setAllowMultipleLogin(boolean allowMultipleLogin) {
this.allowMultipleLogin = allowMultipleLogin;
}
}