From 87acd92c0ff834cdf8e39062fddf06cda91f0252 Mon Sep 17 00:00:00 2001 From: hyunw9 Date: Wed, 17 Jul 2024 02:13:38 +0900 Subject: [PATCH] =?UTF-8?q?Fix=20:=20R2dbc=20config=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/sopt/gptapi/config/R2dbcConfig.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/org/sopt/gptapi/config/R2dbcConfig.java diff --git a/src/main/java/org/sopt/gptapi/config/R2dbcConfig.java b/src/main/java/org/sopt/gptapi/config/R2dbcConfig.java new file mode 100644 index 0000000..b42be06 --- /dev/null +++ b/src/main/java/org/sopt/gptapi/config/R2dbcConfig.java @@ -0,0 +1,44 @@ +package org.sopt.gptapi.config; + +import io.r2dbc.spi.ConnectionFactories; +import io.r2dbc.spi.ConnectionFactory; +import io.r2dbc.spi.ConnectionFactoryOptions; +import io.r2dbc.spi.Option; +import java.time.Duration; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.r2dbc.config.AbstractR2dbcConfiguration; +import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories; + +@Configuration +@EnableR2dbcRepositories +public class R2dbcConfig extends AbstractR2dbcConfiguration { + + @Value("${spring.r2dbc.url}") + private String host; + + @Value("${spring.r2dbc.username}") + private String username; + + @Value("${spring.r2dbc.password}") + private String password; + + @Override + @Bean + public ConnectionFactory connectionFactory() { + return ConnectionFactories.get(ConnectionFactoryOptions.builder() + .option(ConnectionFactoryOptions.DRIVER, "pool") + .option(ConnectionFactoryOptions.PROTOCOL, "postgresql") + .option(ConnectionFactoryOptions.HOST, host) + .option(ConnectionFactoryOptions.PORT, 3306) + .option(ConnectionFactoryOptions.USER, username) + .option(ConnectionFactoryOptions.PASSWORD, password) + .option(ConnectionFactoryOptions.DATABASE, "clody") + .option(Option.valueOf("initialSize"), 10) + .option(Option.valueOf("maxSize"), 20) + .option(Option.valueOf("maxIdleTime"), Duration.ofMinutes(5)) + .option(Option.valueOf("maxLifeTime"), Duration.ofMinutes(5)) + .build()); + } +}