繁体   English   中英

Spring + R2DBC:如何关闭DatabaseClient和TransactionalOperator?

[英]Spring + R2DBC: How to close DatabaseClient and TransactionalOperator?

我可以使用以下命令在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:除非您使用连接池,否则没有什么可以关闭的。

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

同样适用于DatabaseClient 操作完成后,基础连接将关闭。

使用TransactionalOperator@Transactional时,行为上会有一些细微变化,但与JDBC类似:R2DBC连接在活动事务期间绑定到事务本身,这使DatabaseClient可以重复使用同一连接,直到事务完成为止。 事务完成后,绑定的连接被释放。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM