<aside> 📎 참고문서 https://lts0606.tistory.com/312 https://velog.io/@hans96/Spring-Webflux-R2DBC-게시판-CRUD-예제-1 https://ahea.wordpress.com/2017/02/13/spring-data/
</aside>
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration;
import org.springframework.data.mongodb.core.ReactiveMongoClientFactoryBean;
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
import org.springframework.data.mongodb.repository.config.EnableReactiveMongoRepositories;
import com.mongodb.reactivestreams.client.MongoClient;
import com.mongodb.reactivestreams.client.MongoClients;
@Configuration
@ConditionalOnProperty(
value = "common.db"
,havingValue = "mongo"
,matchIfMissing = false)
@EnableReactiveMongoRepositories(basePackages = "com.reactivetest.r2db.person.repository")
public class RxMongoConfig extends AbstractReactiveMongoConfiguration {
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create();
}
@Override
protected String getDatabaseName() {
return "TestDB";
}
@Bean
public ReactiveMongoTemplate reactiveMongoTemplate() {
return new ReactiveMongoTemplate(reactiveMongoClient(), getDatabaseName());
}
}
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories;
import org.springframework.r2dbc.core.DatabaseClient;
import io.r2dbc.spi.ConnectionFactory;
@Configuration
@ConditionalOnProperty(
value = "common.db"
,havingValue = "rdb"
,matchIfMissing = false)
@EnableR2dbcRepositories(basePackages = "com.reactivetest.r2db.person.repository")
public class R2dbcTemplate {
@Bean
public R2dbcEntityTemplate r2dbcEntityTemplate(ConnectionFactory databaseClient) {
return new R2dbcEntityTemplate(databaseClient);
}
@Bean
public DatabaseClient databaseClient(ConnectionFactory connectionFactory) {
return DatabaseClient.builder().connectionFactory(connectionFactory).build();
}
}
https://docs.spring.io/spring-data/r2dbc/docs/current-SNAPSHOT/reference/html/#reference
https://skyblue300a.tistory.com/9
https://javacan.tistory.com/entry/R2DBC-03-Spring-Data-R2DBC-DatabaseClient
https://docs.spring.io/spring-data/r2dbc/docs/current-SNAPSHOT/reference/html/#r2dbc.repositories
R2dbc의 문제점