diff --git a/build.gradle b/build.gradle index 28f83ab..3f3b3dd 100644 --- a/build.gradle +++ b/build.gradle @@ -35,6 +35,7 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.security:spring-security-crypto' implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-data-redis' implementation 'io.micrometer:micrometer-tracing-bridge-brave' implementation 'io.zipkin.reporter2:zipkin-reporter-brave' implementation 'me.paulschwarz:spring-dotenv:4.0.0' diff --git a/src/main/java/org/creditto/core_banking/global/config/RedisConfig.java b/src/main/java/org/creditto/core_banking/global/config/RedisConfig.java new file mode 100644 index 0000000..7e7b0e5 --- /dev/null +++ b/src/main/java/org/creditto/core_banking/global/config/RedisConfig.java @@ -0,0 +1,28 @@ +package org.creditto.core_banking.global.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +@Configuration +public class RedisConfig { + + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(connectionFactory); + + // key:value + template.setKeySerializer(new StringRedisSerializer()); + template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); + + // hash key:value + template.setHashKeySerializer(new StringRedisSerializer()); + template.setHashValueSerializer((new GenericJackson2JsonRedisSerializer())); + + return template; + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 17757ec..9630eeb 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -6,6 +6,11 @@ spring: username: ${DB_USERNAME} password: ${DB_PASSWORD} driver-class-name: com.mysql.cj.jdbc.Driver + data: + redis: + host: localhost + port: 6379 + timeout: 2000 scheduler: remittance: diff --git a/src/test/java/org/creditto/core_banking/domain/redis/RedisTest.java b/src/test/java/org/creditto/core_banking/domain/redis/RedisTest.java new file mode 100644 index 0000000..3f1e3fb --- /dev/null +++ b/src/test/java/org/creditto/core_banking/domain/redis/RedisTest.java @@ -0,0 +1,24 @@ +package org.creditto.core_banking.domain.redis; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.data.redis.core.RedisTemplate; + +@Disabled +@SpringBootTest +public class RedisTest { + + @Autowired + private RedisTemplate redisTemplate; + + @Test + void testRedisConnection() { + String key = "test-key"; + String expectedValue = "redis"; + redisTemplate.opsForValue().set(key, expectedValue); + Object value = redisTemplate.opsForValue().get(key); + System.out.println("Redis Value: " + value); + } +}