当前位置: 首页 > 知识库问答 >
问题:

Spring数据r2dbc:与mysql连接时出现问题-找不到“r2dbcEntityTemplate”

蒋默
2023-03-14

我的Spring启动应用程序正试图使用Spring数据r2dbc连接到mysql5.7。设置似乎非常简单。但是,我一直遇到意想不到的异常

任何帮助都将不胜感激。

日志:

2021-09-28 10:13:48.591  INFO 12261 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data R2DBC repositories in DEFAULT mode.
2021-09-28 10:13:48.651  INFO 12261 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 52 ms. Found 1 R2DBC repository interfaces.
//...
2021-09-28 10:13:49.250  WARN 12261 --- [  restartedMain] onfigReactiveWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: 
//...
Error creating bean with name 'healthCheckRepository' defined in application.model.respository.r2dbc.HealthCheckRepository defined in @EnableR2dbcRepositories declared on MainApplication: Cannot resolve reference to bean 'r2dbcEntityTemplate' while setting bean property 'entityOperations'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'r2dbcEntityTemplate' available
//... 
Description:

Parameter 0 of constructor in application.service.HealthCheckService required a bean named 'r2dbcEntityTemplate' that could not be found. 


Action:

Consider defining a bean named 'r2dbcEntityTemplate' in your configuration.

application.yaml

spring:
  r2dbc:
    url: r2dbc:pool:mysql//server/database?useUnicode=true&characterEncoding=UTF-8&useSSL=false&useLocalSessionState=true
    username: username
    password: password
    pool:
      enabled: true
      max-size: 20
      validation-query: SELECT 1
      initial-size: 5
      max-idle-time: 30m
  data:
    r2dbc:
      repositories:
        enabled: true

build.gradle

plugins {
    id 'java'
    id 'org.springframework.boot' version '2.5.5'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id "io.freefair.lombok" version "6.2.0" //using
}
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'org.springframework.boot:spring-boot-starter-log4j2'

//    implementation 'org.springframework.boot:spring-boot-starter-data-redis-reactive'

    implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc'
    runtimeOnly 'dev.miku:r2dbc-mysql:0.8.2.RELEASE'
    runtimeOnly 'mysql:mysql-connector-java'
}

共有1个答案

充栋
2023-03-14

原来是Spring启动问题。请参阅以下git问题以获取解决方案

https://github.com/spring-projects/spring-data-r2dbc/issues/659

 类似资料:
  • 我收到一个错误: 编辑:链接到堆栈跟踪 下面是错误的最后一个“部分”,表示这是一个: ' 我的URL字符串:“jdbc:mysql://127.0.0.1:3306/schemaname?useUnicode=true 我的连接代码片段: 我已经使用了正确的模式/库名、用户名、密码和所有其他所需的“需求”。我还设置了绑定地址为,端口为。数据库是在线的,我已经确保服务正在运行。

  • 我在Ubuntu 14.04中使用XAMPP for linux。在终端上启动服务时,打印下一个日志: sudo /opt/lampp/lampp启动 "开始XAMPPLinux5.5.30-0... XAMPP:正在启动Apache。。。好啊 XAMPP:正在启动MySQL。。。已经在运行了。 XAMPP:开始ProFTPD...好的。" 我不知道为什么当我第一次启动XAMPPm时,MySQL服

  • 我们正在尝试将涡轮机集成到我们的应用程序中。 我下载了1。o、 o样品发布(https://github.com/spring-cloud-samples/turbine/releases/tag/v1.0.0.RELEASE)建造并运行它。我没有连接到eureka(我拥有的其他服务与应用程序yml connect fine中的eureka连接设置相同)。 考虑到也许我应该尝试最新版本的turbi

  • 我希望连接的文件夹中有大约500个数据集。它们都有相同的列名:“年”、“邮政编码”、“Var1”、“Var2”、“Var3”。 我使用以下代码循环浏览文件夹中的文件: 当我输出数据集时,仅显示2019年的数据集和邮政编码000001。我打印了整个文件列表,我想要连接的数据集都在那里。有没有洞察到为什么会出现这种情况?谢谢

  • 我在Windows Server 2019上安装了MySQL Server 8.0,在安装过程中,我创建了具有DBAdmin权限的用户。从本地计算机连接时没有问题(),但尝试从远程计算机连接时(),返回错误1045。我使用nmap检查了端口3306的可用性,端口是打开的。 当在Windows10上安装mysql server时,没有发现此类问题,来自远程机器的连接正常工作。你能告诉我在设置中我可能

  • 我有一个IP地址每次我收到连接失败的消息时,我都尝试了很多连接到该服务器的方法。出于安全原因,我隐藏了用户名和密码。 代码: 我有例外 组织。postgresql。util。PSQLException:连接尝试失败。在org。postgresql。果心v3。连接工厂impl。org上的openConnectionImpl(ConnectionFactoryImpl.java:292)。postgr