Spring Boot集成R2DBC时H2数据库无法被识别的问题排查
问题产生原因
你当前引入的*com.h2database:h2是H2数据库的JDBC驱动,Spring Data R2DBC无法基于JDBC驱动创建响应式连接*。H2对应的R2DBC驱动是独立的发布包,不在现有依赖列表中,Spring Boot自动配置阶段找不到可用的R2DBC驱动实现,就无法自动推导嵌入式数据库的连接URL,最终抛出连接配置失败的错误。
教程中的示例可以正常自动配置,是因为创建项目时勾选了R2DBC场景下的H2驱动选项,生成的依赖配置默认包含了对应的R2DBC驱动包。
修复步骤
- 在pom.xml的依赖节点中补充H2的R2DBC驱动依赖:
<dependency> <groupId>io.r2dbc</groupId> <artifactId>r2dbc-h2</artifactId> <scope>runtime</scope> </dependency>
- 补充依赖后如果仍触发相同报错,在项目配置文件(
application.properties或application.yml)中手动指定R2DBC连接参数即可:- Properties格式配置:
spring.r2dbc.url=r2dbc:h2:mem:///demo spring.r2dbc.username=sa spring.r2dbc.password=- YAML格式配置:
spring: r2dbc: url: r2dbc:h2:mem:///demo username: sa password:
配置完成后重启应用,即可正常完成响应式数据源的自动装配。
内容的提问来源于stack exchange,提问作者Susitha Ravinda Senarath
相关产品推荐
相关产品推荐

