gpt4 book ai didi

java - Spring +R2DBC : How to close DatabaseClient and TransactionalOperator?

转载 作者:行者123 更新时间:2023-12-02 09:33:56 24 4
gpt4 key购买 nike

我可以使用以下方法在 Spring Boot 应用程序中创建 DatabaseClient 和 TransactionalOperator:

@Autowired public App(ConnectionFactory factory) {
DatabaseClient dc = DatabaseClient.create(factory);
TransactionalOperator to = TransactionalOperator.create(new R2dbcTransactionManager(factory));
}

但是如何关闭 DatabaseClient 和 TransactionalOperator 并释放连接/资源?

这是在 Spring Boot 应用程序中为 R2DBC 创建数据库连接的最佳方式吗?

最佳答案

TL;DR:除非您使用connection pool,否则没有什么可以关闭的.

Spring Data R2DBC 的DatabaseClient 为每个调用的操作分配一个连接。它与 JdbcTemplate 类似,要求其 DataSource 为您调用的每个方法创建一个 Connection。一旦方法调用完成,它就会释放(关闭)连接。

同样适用于DatabaseClient。一旦操作完成,底层连接就会关闭。

使用 TransactionalOperator@Transactional 时,行为略有变化,但与 JDBC 类似:R2DBC 连接在 Activity 事务期间绑定(bind)到事务本身,这使得 DatabaseClient 以重用相同的连接,直到事务完成。事务完成后,绑定(bind)的连接被释放。

关于java - Spring +R2DBC : How to close DatabaseClient and TransactionalOperator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57700104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com